LCOV - code coverage report
Current view: | top level - hemco/HEMCO/src/Core - hco_scale_mod.F90 (source / functions) |  |  | Hit | Total | Coverage
Test: | coverage.info |  | Lines: | 0 | 79 | 0.0 %
Date: | 2024-12-17 22:39:59 |  | Functions: | 0 | 9 | 0.0 %

              Line data    Source code
           1             : !------------------------------------------------------------------------------
           2             : !                   Harmonized Emissions Component (HEMCO)                    !
           3             : !------------------------------------------------------------------------------
           4             : !BOP
           5             : !
           6             : ! !MODULE: hco_scale_mod.F90
           7             : !
           8             : ! !DESCRIPTION: Module hco\_scale\_mod contains a collection of
           9             : ! routines to uniformly scale emissions by species-specific scale
          10             : ! scale factors.
          11             : !\\
          12             : !\\
          13             : ! !INTERFACE:
          14             : !
          15             : MODULE HCO_Scale_Mod
          16             : !
          17             : ! !USES:
          18             : !
          19             :   USE HCO_Error_Mod
          20             :
          21             :   IMPLICIT NONE
          22             :   PRIVATE
          23             : !
          24             : ! !PUBLIC MEMBER FUNCTIONS:
          25             : !
          26             :   PUBLIC :: HCO_ScaleInit
          27             :   PUBLIC :: HCO_ScaleGet
          28             :   PUBLIC :: HCO_ScaleArr
          29             :   PUBLIC :: HCO_ScaleFinal
          30             : !
          31             : ! !PRIVATE MEMBER FUNCTIONS:
          32             : !
          33             :   PRIVATE :: HCO_ScaleArr3D_sp
          34             :   PRIVATE :: HCO_ScaleArr3D_dp
          35             :   PRIVATE :: HCO_ScaleArr2D_sp
          36             :   PRIVATE :: HCO_ScaleArr2D_dp
          37             :   PRIVATE :: HCO_ScaleArr1D_sp
          38             :   PRIVATE :: HCO_ScaleArr1D_dp
          39             : !
          40             : ! !PRIVATE VARIABLES:
          41             : !
          42             :   REAL(hp), ALLOCATABLE :: SpcScal(:)
          43             : !
          44             : ! !INTERFACES:
          45             : !
          46             :   INTERFACE HCO_ScaleArr
          47             :      MODULE PROCEDURE HCO_ScaleArr3D_dp
          48             :      MODULE PROCEDURE HCO_ScaleArr3D_sp
          49             :      MODULE PROCEDURE HCO_ScaleArr2D_dp
          50             :      MODULE PROCEDURE HCO_ScaleArr2D_sp
          51             :      MODULE PROCEDURE HCO_ScaleArr1D_dp
          52             :      MODULE PROCEDURE HCO_ScaleArr1D_sp
          53             :   END INTERFACE
          54             : !
          55             : ! !REVISION HISTORY:
          56             : !  11 May 2017 - C. Keller   - Initial version
          57             : !  See https://github.com/geoschem/hemco for complete history
          58             : !EOP
          59             : !------------------------------------------------------------------------------
          60             : !BOC
          61             : CONTAINS
          62             : !EOC
          63             : !------------------------------------------------------------------------------
          64             : !                   Harmonized Emissions Component (HEMCO)                    !
          65             : !------------------------------------------------------------------------------
          66             : !BOP
          67             : !
          68             : ! !IROUTINE: HCO_ScaleInit
          69             : !
          70             : ! !DESCRIPTION: Function HCO\_ScaleInit initialized the uniform scale
          71             : !  factors for every HEMCO species.
          72             : !\\
          73             : !\\
          74             : ! !INTERFACE:
          75             : !
          76           0 :   SUBROUTINE HCO_ScaleInit( HcoState, RC )
          77             : !
          78             : ! !USES
          79             : !
          80             :     USE HCO_STATE_MOD,    ONLY : HCO_STATE
          81             :     USE HCO_EXTLIST_MOD,  ONLY : GetExtOpt
          82             : !
          83             : ! !INPUT PARAMETERS:
          84             : !
          85             :     TYPE(HCO_State), POINTER        :: HcoState       ! HEMCO state object
          86             : !
          87             : ! !OUTPUT PARAMETERS:
          88             : !
          89             :     INTEGER,         INTENT(INOUT)  :: RC
          90             : !
          91             : ! !REMARKS:
          92             : !
          93             : ! !REVISION HISTORY:
          94             : !  11 May 2017 - C. Keller - Initial version
          95             : !  See https://github.com/geoschem/hemco for complete history
          96             : !EOP
          97             : !------------------------------------------------------------------------------
          98             : !BOC
          99             : !
         100             : ! !LOCAL VARIABLES:
         101             : !
         102             :     INTEGER            :: N
         103             :     LOGICAL            :: FOUND
         104             :     CHARACTER(LEN=255) :: iName, MSG, LOC
         105             :     REAL(hp)           :: ScalFactor
         106             :
         107             :     !--------------------------
         108             :     ! HCO_ScaleInit begins here
         109             :     !--------------------------
         110           0 :     LOC = 'HCO_ScaleInit (HCO_SCALE_MOD.F90)'
         111             :
         112             :     ! Allocate scale factors and initialize all scale factors to 1.0
         113           0 :     IF ( ALLOCATED(SpcScal) ) DEALLOCATE(SpcScal)
         114           0 :     ALLOCATE( SpcScal( HcoState%nSpc ) )
         115           0 :     SpcScal(:) = 1.0_hp
         116             :
         117             :     ! Search for scale factors in HEMCO configuration file
         118           0 :     DO N = 1, HcoState%nSpc
         119           0 :        iName = 'EmisScale_'//TRIM(HcoState%Spc(N)%SpcName)
         120             :        CALL GetExtOpt( HcoState%Config, -999, iName, OptValHp=ScalFactor, &
         121           0 :                        FOUND=FOUND, RC=RC )
         122           0 :        IF ( RC /= HCO_SUCCESS ) THEN
         123           0 :            CALL HCO_ERROR( 'ERROR 0', RC, THISLOC=LOC )
         124           0 :            RETURN
         125             :        ENDIF
         126             :
         127             :        ! If there is a scale factor, update scale vector accordingly
         128           0 :        IF ( FOUND ) THEN
         129           0 :           SpcScal(N) = ScalFactor
         130             :
         131             :           ! Verbose mode
         132           0 :           IF ( HCO_IsVerb( HcoState%Config%Err ) ) THEN
         133           0 :              WRITE (MSG,*) 'Will use universal emission scale factor for ', &
         134           0 :                 TRIM(HcoState%Spc(N)%SpcName),': ',SpcScal(N)
         135           0 :              CALL HCO_MSG ( HcoState%Config%Err, MSG )
         136             :           ENDIF
         137             :        ENDIF
         138             :     ENDDO
         139             :
         140             :     ! Return w/ success
         141           0 :     RC =  HCO_SUCCESS
         142             :
         143             :   END SUBROUTINE HCO_ScaleInit
         144             : !EOC
         145             : !------------------------------------------------------------------------------
         146             : !                   Harmonized Emissions Component (HEMCO)                    !
         147             : !------------------------------------------------------------------------------
         148             : !BOP
         149             : !
         150             : ! !IROUTINE: HCO_ScaleGet
         151             : !
         152             : ! !DESCRIPTION: Function HCO\_ScaleGet returns the scale factor for the given
         153             : !  species ID.
         154             : !\\
         155             : !\\
         156             : ! !INTERFACE:
         157             : !
         158           0 :   FUNCTION HCO_ScaleGet ( HcoID ) RESULT ( ScalFact )
         159             : !
         160             : ! !USES
         161             : !
         162             : !
         163             : ! !INPUT PARAMETERS:
         164             : !
         165             :     INTEGER,         INTENT(IN   )  :: HcoID          ! HEMCO species ID
         166             : !
         167             : ! !RESULT:
         168             : !
         169             :     REAL(hp)                        :: ScalFact
         170             : !
         171             : ! !REMARKS:
         172             : !
         173             : ! !REVISION HISTORY:
         174             : !  11 May 2017 - C. Keller - Initial version
         175             : !  See https://github.com/geoschem/hemco for complete history
         176             : !EOP
         177             : !------------------------------------------------------------------------------
         178             : !BOC
         179             : !
         180             : ! !LOCAL VARIABLES:
         181             : !
         182             :     !--------------------------
         183             :     ! HCO_ScaleGet begins here
         184             :     !--------------------------
         185           0 :     IF ( HcoID > SIZE(SpcScal,1) .OR. HcoID <= 0 ) THEN
         186             :        ScalFact = 1.0_hp
         187             :     ELSE
         188           0 :        ScalFact = SpcScal(HcoID)
         189             :     ENDIF
         190             :
         191           0 :   END FUNCTION HCO_ScaleGet
         192             : !EOC
         193             : !------------------------------------------------------------------------------
         194             : !                   Harmonized Emissions Component (HEMCO)                    !
         195             : !------------------------------------------------------------------------------
         196             : !BOP
         197             : !
         198             : ! !IROUTINE: HCO_ScaleArr3D_sp
         199             : !
         200             : ! !DESCRIPTION: Function HCO\_ScaleArr3D scales the 3D array.
         201             : !\\
         202             : !\\
         203             : ! !INTERFACE:
         204             : !
         205           0 :   SUBROUTINE HCO_ScaleArr3D_sp( HcoState, HcoID, Arr3D, RC )
         206             : !
         207             : ! !USES
         208             : !
         209             :     USE HCO_STATE_MOD,    ONLY : HCO_STATE
         210             :     USE HCO_EXTLIST_MOD,  ONLY : GetExtOpt
         211             : !
         212             : ! !INPUT PARAMETERS:
         213             : !
         214             :     TYPE(HCO_State), POINTER        :: HcoState       ! HEMCO state object
         215             :     INTEGER,         INTENT(IN   )  :: HcoID          ! Species ID
         216             : !
         217             : ! !INPUT/OUTPUT PARAMETERS:
         218             : !
         219             :     REAL(sp),        INTENT(INOUT)  :: Arr3D( HcoState%NX, &
         220             :                                               HcoState%NY, &
         221             :                                               HcoState%NZ )
         222             :     INTEGER ,        INTENT(INOUT)  :: RC
         223             : !
         224             : ! !REMARKS:
         225             : !
         226             : ! !REVISION HISTORY:
         227             : !  11 May 2017 - C. Keller - Initial version
         228             : !  See https://github.com/geoschem/hemco for complete history
         229             : !EOP
         230             : !------------------------------------------------------------------------------
         231             : !BOC
         232             : !
         233             : ! !LOCAL VARIABLES:
         234             : !
         235             :     REAL(hp)           :: ScalFact
         236             :     CHARACTER(LEN=255) :: MSG
         237             :
         238             :     !--------------------------
         239             :     ! HCO_ScaleArr3D_sp begins here
         240             :     !--------------------------
         241           0 :     ScalFact = HCO_ScaleGet( HcoID )
         242           0 :     IF ( .NOT. HcoState%Options%ScaleEmis ) ScalFact = 1.0_hp
         243           0 :     IF ( ScalFact /= 1.0_hp ) THEN
         244           0 :        Arr3D = Arr3D * ScalFact
         245             :        ! Verbose mode
         246           0 :        IF ( HCO_IsVerb( HcoState%Config%Err ) ) THEN
         247           0 :           WRITE(MSG,*) '3D field scaled by factor of ',ScalFact
         248           0 :           CALL HCO_MSG ( HcoState%Config%Err, MSG )
         249             :        ENDIF
         250             :     ENDIF
         251             :
         252             :     ! Return w/ success
         253           0 :     RC =  HCO_SUCCESS
         254             :
         255           0 :   END SUBROUTINE HCO_ScaleArr3D_sp
         256             : !EOC
         257             : !------------------------------------------------------------------------------
         258             : !                   Harmonized Emissions Component (HEMCO)                    !
         259             : !------------------------------------------------------------------------------
         260             : !BOP
         261             : !
         262             : ! !IROUTINE: HCO_ScaleArr3D_dp
         263             : !
         264             : ! !DESCRIPTION: Function HCO\_ScaleArr3D scales the 3D array.
         265             : !\\
         266             : !\\
         267             : ! !INTERFACE:
         268             : !
         269           0 :   SUBROUTINE HCO_ScaleArr3D_dp( HcoState, HcoID, Arr3D, RC )
         270             : !
         271             : ! !USES
         272             : !
         273             :     USE HCO_STATE_MOD,    ONLY : HCO_STATE
         274             :     USE HCO_EXTLIST_MOD,  ONLY : GetExtOpt
         275             : !
         276             : ! !INPUT PARAMETERS:
         277             : !
         278             :     TYPE(HCO_State), POINTER        :: HcoState       ! HEMCO state object
         279             :     INTEGER,         INTENT(IN   )  :: HcoID          ! Species ID
         280             : !
         281             : ! !INPUT/OUTPUT PARAMETERS:
         282             : !
         283             :     REAL(dp),        INTENT(INOUT)  :: Arr3D( HcoState%NX, &
         284             :                                               HcoState%NY, &
         285             :                                               HcoState%NZ )
         286             :     INTEGER ,        INTENT(INOUT)  :: RC
         287             : !
         288             : ! !REMARKS:
         289             : !
         290             : ! !REVISION HISTORY:
         291             : !  11 May 2017 - C. Keller - Initial version
         292             : !  See https://github.com/geoschem/hemco for complete history
         293             : !EOP
         294             : !------------------------------------------------------------------------------
         295             : !BOC
         296             : !
         297             : ! !LOCAL VARIABLES:
         298             : !
         299             :     REAL(hp)           :: ScalFact
         300             :     CHARACTER(LEN=255) :: MSG
         301             :
         302             :     !--------------------------
         303             :     ! HCO_ScaleArr3D_dp begins here
         304             :     !--------------------------
         305           0 :     ScalFact = HCO_ScaleGet( HcoID )
         306           0 :     IF ( .NOT. HcoState%Options%ScaleEmis ) ScalFact = 1.0_hp
         307           0 :     IF ( ScalFact /= 1.0_hp ) THEN
         308           0 :        Arr3D = Arr3D * ScalFact
         309             :        ! Verbose mode
         310           0 :        IF ( HCO_IsVerb( HcoState%Config%Err ) ) THEN
         311           0 :           WRITE(MSG,*) '3D field scaled by factor of ',ScalFact
         312           0 :           CALL HCO_MSG ( HcoState%Config%Err, MSG )
         313             :        ENDIF
         314             :     ENDIF
         315             :
         316             :     ! Return w/ success
         317           0 :     RC =  HCO_SUCCESS
         318             :
         319           0 :   END SUBROUTINE HCO_ScaleArr3D_dp
         320             : !EOC
         321             : !------------------------------------------------------------------------------
         322             : !                   Harmonized Emissions Component (HEMCO)                    !
         323             : !------------------------------------------------------------------------------
         324             : !BOP
         325             : !
         326             : ! !IROUTINE: HCO_ScaleArr2D_sp
         327             : !
         328             : ! !DESCRIPTION: Function HCO\_ScaleArr2D scales the 2D array.
         329             : !\\
         330             : !\\
         331             : ! !INTERFACE:
         332             : !
         333           0 :   SUBROUTINE HCO_ScaleArr2D_sp( HcoState, HcoID, Arr2D, RC )
         334             : !
         335             : ! !USES
         336             : !
         337             :     USE HCO_STATE_MOD,    ONLY : HCO_STATE
         338             :     USE HCO_EXTLIST_MOD,  ONLY : GetExtOpt
         339             : !
         340             : ! !INPUT PARAMETERS:
         341             : !
         342             :     TYPE(HCO_State), POINTER        :: HcoState       ! HEMCO state object
         343             :     INTEGER,         INTENT(IN   )  :: HcoID          ! Species ID
         344             : !
         345             : ! !INPUT/OUTPUT PARAMETERS:
         346             : !
         347             :     REAL(sp),        INTENT(INOUT)  :: Arr2D( HcoState%NX, &
         348             :                                               HcoState%NY )
         349             :     INTEGER ,        INTENT(INOUT)  :: RC
         350             : !
         351             : ! !REMARKS:
         352             : !
         353             : ! !REVISION HISTORY:
         354             : !  11 May 2017 - C. Keller - Initial version
         355             : !  See https://github.com/geoschem/hemco for complete history
         356             : !EOP
         357             : !------------------------------------------------------------------------------
         358             : !BOC
         359             : !
         360             : ! !LOCAL VARIABLES:
         361             : !
         362             :     REAL(hp)           :: ScalFact
         363             :     CHARACTER(LEN=255) :: MSG
         364             :
         365             :     !--------------------------
         366             :     ! HCO_ScaleArr2D begins here
         367             :     !--------------------------
         368           0 :     ScalFact = HCO_ScaleGet( HcoID )
         369           0 :     IF ( .NOT. HcoState%Options%ScaleEmis ) ScalFact = 1.0_hp
         370           0 :     IF ( ScalFact /= 1.0_hp ) THEN
         371           0 :        Arr2D = Arr2D * ScalFact
         372             :        ! Verbose mode
         373           0 :        IF ( HCO_IsVerb( HcoState%Config%Err ) ) THEN
         374           0 :           WRITE(MSG,*) '2D field scaled by factor of ',ScalFact
         375           0 :           CALL HCO_MSG ( HcoState%Config%Err, MSG )
         376             :        ENDIF
         377             :     ENDIF
         378             :
         379             :     ! Return w/ success
         380           0 :     RC =  HCO_SUCCESS
         381             :
         382           0 :   END SUBROUTINE HCO_ScaleArr2D_sp
         383             : !EOC
         384             : !------------------------------------------------------------------------------
         385             : !                   Harmonized Emissions Component (HEMCO)                    !
         386             : !------------------------------------------------------------------------------
         387             : !BOP
         388             : !
         389             : ! !IROUTINE: HCO_ScaleArr2D_dp
         390             : !
         391             : ! !DESCRIPTION: Function HCO\_ScaleArr2D scales the 2D array.
         392             : !\\
         393             : !\\
         394             : ! !INTERFACE:
         395             : !
         396           0 :   SUBROUTINE HCO_ScaleArr2D_dp( HcoState, HcoID, Arr2D, RC )
         397             : !
         398             : ! !USES
         399             : !
         400             :     USE HCO_STATE_MOD,    ONLY : HCO_STATE
         401             :     USE HCO_EXTLIST_MOD,  ONLY : GetExtOpt
         402             : !
         403             : ! !INPUT PARAMETERS:
         404             : !
         405             :     TYPE(HCO_State), POINTER        :: HcoState       ! HEMCO state object
         406             :     INTEGER,         INTENT(IN   )  :: HcoID          ! Species ID
         407             : !
         408             : ! !INPUT/OUTPUT PARAMETERS:
         409             : !
         410             :     REAL(dp),        INTENT(INOUT)  :: Arr2D( HcoState%NX, &
         411             :                                               HcoState%NY )
         412             :     INTEGER ,        INTENT(INOUT)  :: RC
         413             : !
         414             : ! !REMARKS:
         415             : !
         416             : ! !REVISION HISTORY:
         417             : !  11 May 2017 - C. Keller - Initial version
         418             : !  See https://github.com/geoschem/hemco for complete history
         419             : !EOP
         420             : !------------------------------------------------------------------------------
         421             : !BOC
         422             : !
         423             : ! !LOCAL VARIABLES:
         424             : !
         425             :     REAL(hp)           :: ScalFact
         426             :     CHARACTER(LEN=255) :: MSG
         427             :
         428             :     !--------------------------
         429             :     ! HCO_ScaleArr2D begins here
         430             :     !--------------------------
         431           0 :     ScalFact = HCO_ScaleGet( HcoID )
         432           0 :     IF ( .NOT. HcoState%Options%ScaleEmis ) ScalFact = 1.0_hp
         433           0 :     IF ( ScalFact /= 1.0_hp ) THEN
         434           0 :        Arr2D = Arr2D * ScalFact
         435             :        ! Verbose mode
         436           0 :        IF ( HCO_IsVerb( HcoState%Config%Err ) ) THEN
         437           0 :           WRITE(MSG,*) '2D field scaled by factor of ',ScalFact
         438           0 :           CALL HCO_MSG ( HcoState%Config%Err, MSG )
         439             :        ENDIF
         440             :     ENDIF
         441             :
         442             :     ! Return w/ success
         443           0 :     RC =  HCO_SUCCESS
         444             :
         445           0 :   END SUBROUTINE HCO_ScaleArr2D_dp
         446             : !EOC
         447             : !------------------------------------------------------------------------------
         448             : !                   Harmonized Emissions Component (HEMCO)                    !
         449             : !------------------------------------------------------------------------------
         450             : !BOP
         451             : !
         452             : ! !IROUTINE: HCO_ScaleArr1D_sp
         453             : !
         454             : ! !DESCRIPTION: Function HCO\_ScaleArr1D scales a single value.
         455             : !\\
         456             : !\\
         457             : ! !INTERFACE:
         458             : !
         459           0 :   SUBROUTINE HCO_ScaleArr1D_sp( HcoState, HcoID, Arr1D, RC )
         460             : !
         461             : ! !USES
         462             : !
         463             :     USE HCO_STATE_MOD,    ONLY : HCO_STATE
         464             :     USE HCO_EXTLIST_MOD,  ONLY : GetExtOpt
         465             : !
         466             : ! !INPUT PARAMETERS:
         467             : !
         468             :     TYPE(HCO_State), POINTER        :: HcoState       ! HEMCO state object
         469             :     INTEGER,         INTENT(IN   )  :: HcoID          ! Species ID
         470             : !
         471             : ! !INPUT/OUTPUT PARAMETERS:
         472             : !
         473             :     REAL(sp),        INTENT(INOUT)  :: Arr1D
         474             :     INTEGER ,        INTENT(INOUT)  :: RC
         475             : !
         476             : ! !REMARKS:
         477             : !
         478             : ! !REVISION HISTORY:
         479             : !  11 May 2017 - C. Keller - Initial version
         480             : !  See https://github.com/geoschem/hemco for complete history
         481             : !EOP
         482             : !------------------------------------------------------------------------------
         483             : !BOC
         484             : !
         485             : ! !LOCAL VARIABLES:
         486             : !
         487             :     REAL(hp)           :: ScalFact
         488             :     CHARACTER(LEN=255) :: MSG
         489             :
         490             :     !--------------------------
         491             :     ! HCO_ScaleArr2D begins here
         492             :     !--------------------------
         493           0 :     ScalFact = HCO_ScaleGet( HcoID )
         494           0 :     IF ( .NOT. HcoState%Options%ScaleEmis ) ScalFact = 1.0_hp
         495           0 :     IF ( ScalFact /= 1.0_hp ) THEN
         496           0 :        Arr1D = Arr1D * ScalFact
         497             :        ! Verbose mode
         498             :        !IF ( HCO_IsVerb( HcoState%Config%Err ) ) THEN
         499             :        !   WRITE(MSG,*) '1D field scaled by factor of ',ScalFact
         500             :        !   CALL HCO_MSG ( HcoState%Config%Err, MSG )
         501             :        !ENDIF
         502             :     ENDIF
         503             :
         504             :     ! Return w/ success
         505           0 :     RC =  HCO_SUCCESS
         506             :
         507           0 :   END SUBROUTINE HCO_ScaleArr1D_sp
         508             : !EOC
         509             : !------------------------------------------------------------------------------
         510             : !                   Harmonized Emissions Component (HEMCO)                    !
         511             : !------------------------------------------------------------------------------
         512             : !BOP
         513             : !
         514             : ! !IROUTINE: HCO_ScaleArr1D_dp
         515             : !
         516             : ! !DESCRIPTION: Function HCO\_ScaleArr1D scales a single value.
         517             : !\\
         518             : !\\
         519             : ! !INTERFACE:
         520             : !
         521           0 :   SUBROUTINE HCO_ScaleArr1D_dp( HcoState, HcoID, Arr1D, RC )
         522             : !
         523             : ! !USES
         524             : !
         525             :     USE HCO_STATE_MOD,    ONLY : HCO_STATE
         526             :     USE HCO_EXTLIST_MOD,  ONLY : GetExtOpt
         527             : !
         528             : ! !INPUT PARAMETERS:
         529             : !
         530             :     TYPE(HCO_State), POINTER        :: HcoState       ! HEMCO state object
         531             :     INTEGER,         INTENT(IN   )  :: HcoID          ! Species ID
         532             : !
         533             : ! !INPUT/OUTPUT PARAMETERS:
         534             : !
         535             :     REAL(dp),        INTENT(INOUT)  :: Arr1D
         536             :     INTEGER ,        INTENT(INOUT)  :: RC
         537             : !
         538             : ! !REMARKS:
         539             : !
         540             : ! !REVISION HISTORY:
         541             : !  11 May 2017 - C. Keller - Initial version
         542             : !  See https://github.com/geoschem/hemco for complete history
         543             : !EOP
         544             : !------------------------------------------------------------------------------
         545             : !BOC
         546             : !
         547             : ! !LOCAL VARIABLES:
         548             : !
         549             :     REAL(hp)           :: ScalFact
         550             :     CHARACTER(LEN=255) :: MSG
         551             :
         552             :     !--------------------------
         553             :     ! HCO_ScaleArr2D begins here
         554             :     !--------------------------
         555           0 :     ScalFact = HCO_ScaleGet( HcoID )
         556           0 :     IF ( .NOT. HcoState%Options%ScaleEmis ) ScalFact = 1.0_hp
         557           0 :     IF ( ScalFact /= 1.0_hp ) THEN
         558           0 :        Arr1D = Arr1D * ScalFact
         559             :        ! Verbose mode
         560             :        !IF ( HCO_IsVerb( HcoState%Config%Err ) ) THEN
         561             :        !   WRITE(MSG,*) '1D field scaled by factor of ',ScalFact
         562             :        !   CALL HCO_MSG ( HcoState%Config%Err, MSG )
         563             :        !ENDIF
         564             :     ENDIF
         565             :
         566             :     ! Return w/ success
         567           0 :     RC =  HCO_SUCCESS
         568             :
         569           0 :   END SUBROUTINE HCO_ScaleArr1D_dp
         570             : !EOC
         571             : !------------------------------------------------------------------------------
         572             : !                   Harmonized Emissions Component (HEMCO)                    !
         573             : !------------------------------------------------------------------------------
         574             : !BOP
         575             : !
         576             : ! !IROUTINE: HCO_ScaleFinal
         577             : !
         578             : ! !DESCRIPTION: Function HCO\_ScaleFinal finalizes the module.
         579             : !\\
         580             : !\\
         581             : ! !INTERFACE:
         582             : !
         583           0 :   SUBROUTINE HCO_ScaleFinal()
         584             : !
         585             : ! !USES
         586             : !
         587             : !
         588             : ! !INPUT PARAMETERS:
         589             : !
         590             : !
         591             : ! !REMARKS:
         592             : !
         593             : ! !REVISION HISTORY:
         594             : !  11 May 2017 - C. Keller - Initial version
         595             : !  See https://github.com/geoschem/hemco for complete history
         596             : !EOP
         597             : !------------------------------------------------------------------------------
         598             : !BOC
         599             : !
         600             : ! !LOCAL VARIABLES:
         601             : !
         602             :     !--------------------------
         603             :     ! HCO_ScaleFinal begins here
         604             :     !--------------------------
         605             :
         606             :     ! Allocate scale factors and initialize all scale factors to 1.0
         607           0 :     IF ( ALLOCATED(SpcScal) ) DEALLOCATE(SpcScal)
         608             :
         609           0 :   END SUBROUTINE HCO_ScaleFinal
         610             : !EOC
         611             : END MODULE HCO_Scale_Mod
         612             : !EOM

Generated by: LCOV version 1.14