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: 2025-01-13 21:54:50 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