LCOV - code coverage report
Current view: top level - hemco/HEMCO/src/Core - hco_logfile_mod.F90 (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 123 0.0 %
Date: 2025-03-13 18:42:46 Functions: 0 3 0.0 %

          Line data    Source code
       1             : !------------------------------------------------------------------------------
       2             : !                   Harmonized Emissions Component (HEMCO)                    !
       3             : !------------------------------------------------------------------------------
       4             : !BOP
       5             : !
       6             : ! !MODULE: hco_logfile_mod
       7             : !
       8             : ! !DESCRIPTION: Module HCO\_LOGFILE\_MOD contains some wrapper routines to
       9             : ! write data into the HEMCO logfile.
      10             : !\\
      11             : !\\
      12             : ! !INTERFACE:
      13             : !
      14             : MODULE HCO_LOGFILE_MOD
      15             : !
      16             : ! !USES:
      17             : !
      18             :   USE HCO_ERROR_MOD
      19             : 
      20             :   IMPLICIT NONE
      21             :   PRIVATE
      22             : !
      23             : ! !PUBLIC MEMBER FUNCTIONS:
      24             : !
      25             :   PUBLIC  :: HCO_Spec2Log
      26             :   PUBLIC  :: HCO_PrintList
      27             :   PUBLIC  :: HCO_PrintDataCont
      28             : !
      29             : ! !REVISION HISTORY:
      30             : !  27 May 2014 - C. Keller   - Initialization
      31             : !  See https://github.com/geoschem/hemco for complete history
      32             : !EOP
      33             : !------------------------------------------------------------------------------
      34             : !BOC
      35             : CONTAINS
      36             : !EOC
      37             : !------------------------------------------------------------------------------
      38             : !                   Harmonized Emissions Component (HEMCO)                    !
      39             : !------------------------------------------------------------------------------
      40             : !BOP
      41             : !
      42             : ! !IROUTINE: hco_spec2log
      43             : !
      44             : ! !DESCRIPTION: Subroutine HCO\_Spec2Log writes information of a species
      45             : ! to the logfile.
      46             : !\\
      47             : !\\
      48             : ! !INTERFACE:
      49             : !
      50           0 :   SUBROUTINE HCO_Spec2Log( HcoState, ID )
      51             : !
      52             : ! !USES:
      53             : !
      54             :     USE HCO_STATE_MOD, ONLY : HCO_State
      55             : !
      56             : !
      57             : ! !INPUT PARAMETER
      58             : !
      59             :     TYPE(HCO_State),  POINTER        :: HcoState   ! HEMCO state object
      60             :     INTEGER,          INTENT(IN)     :: ID         ! HEMCO species ID
      61             : !
      62             : ! !REVISION HISTORY:
      63             : !  27 May 2014 - C. Keller   - Initialization
      64             : !  See https://github.com/geoschem/hemco for complete history
      65             : !EOP
      66             : !------------------------------------------------------------------------------
      67             : !BOC
      68             : !
      69             : ! !LOCAL VARIABLES:
      70             : !
      71             :     CHARACTER(LEN=255)  :: MSG
      72             : 
      73             :     !=================================================================
      74             :     ! HCO_Spec2Log begins here
      75             :     !=================================================================
      76             : 
      77           0 :     MSG = 'Species ' // TRIM(HcoState%Spc(ID)%SpcName)
      78           0 :     CALL HCO_MSG(HcoState%Config%Err,MSG)
      79           0 :     IF ( HCO_IsVerb(HcoState%Config%Err,3) ) THEN
      80           0 :        write(MSG,*) '--> HcoID         : ', HcoState%Spc(ID)%HcoID
      81           0 :        CALL HCO_MSG(HcoState%Config%Err,MSG)
      82           0 :        write(MSG,*) '--> ModID         : ', HcoState%Spc(ID)%ModID
      83           0 :        CALL HCO_MSG(HcoState%Config%Err,MSG)
      84           0 :        write(MSG,*) '--> MW (g/mol)    : ', HcoState%Spc(ID)%MW_g
      85           0 :        CALL HCO_MSG(HcoState%Config%Err,MSG)
      86           0 :        write(MSG,*) '--> Henry constant: ', HcoState%Spc(ID)%HenryK0
      87           0 :        CALL HCO_MSG(HcoState%Config%Err,MSG)
      88           0 :        write(MSG,*) '--> Henry temp.   : ', HcoState%Spc(ID)%HenryCR
      89           0 :        CALL HCO_MSG(HcoState%Config%Err,MSG)
      90           0 :        write(MSG,*) '--> Henry pKA     : ', HcoState%Spc(ID)%HenryPKA
      91           0 :        CALL HCO_MSG(HcoState%Config%Err,MSG)
      92             :     ENDIF
      93             : 
      94           0 :   END SUBROUTINE HCO_Spec2Log
      95             : !EOC
      96             : !------------------------------------------------------------------------------
      97             : !                   Harmonized Emissions Component (HEMCO)                    !
      98             : !------------------------------------------------------------------------------
      99             : !BOP
     100             : !
     101             : ! !ROUTINE: HCO_PrintList
     102             : !
     103             : ! !DESCRIPTION: Subroutine HCO\_PrintList displays the content of List.
     104             : !\\
     105             : !\\
     106             : ! !INTERFACE:
     107             : !
     108           0 :       SUBROUTINE HCO_PrintList ( HcoState, List, Verbose )
     109             : !
     110             : ! !USES:
     111             : !
     112             :       USE HCO_STATE_MOD,     ONLY : HCO_State
     113             :       USE HCO_TYPES_MOD,     ONLY : ListCont
     114             : !
     115             : ! !INPUT ARGUMENTS:
     116             : !
     117             :       TYPE(HCO_STATE),POINTER    :: HcoState
     118             :       TYPE(ListCont), POINTER    :: List
     119             :       INTEGER,        INTENT(IN) :: Verbose
     120             : !
     121             : ! !REVISION HISTORY:
     122             : !  20 Apr 2013 - C. Keller - Initial version
     123             : !  See https://github.com/geoschem/hemco for complete history
     124             : !EOP
     125             : !------------------------------------------------------------------------------
     126             : !BOC
     127             : !
     128             : ! !ARGUMENTS:
     129             : !
     130             :       TYPE(ListCont), POINTER   :: TmpLct
     131             :       CHARACTER(LEN=255)        :: MSG
     132             : 
     133             :       ! ================================================================
     134             :       ! HCO_PrintList begins here
     135             :       ! ================================================================
     136             : 
     137             :       ! Point to first element
     138           0 :       TmpLct => List
     139           0 :       DO WHILE ( ASSOCIATED(TmpLct) )
     140           0 :          IF ( ASSOCIATED(TmpLct%Dct) ) THEN
     141           0 :             CALL HCO_PrintDataCont(HcoState,TmpLct%Dct,Verbose)
     142             :          ENDIF
     143           0 :          TmpLct => TmpLct%NextCont
     144             :       ENDDO
     145             : 
     146           0 :       TmpLct => NULL()
     147             : 
     148           0 :       END SUBROUTINE HCO_PrintList
     149             : !EOC
     150             : !------------------------------------------------------------------------------
     151             : !                   Harmonized Emissions Component (HEMCO)                    !
     152             : !------------------------------------------------------------------------------
     153             : !BOP
     154             : !
     155             : ! !ROUTINE: HCO_PrintDataCont
     156             : !
     157             : ! !DESCRIPTION: Subroutine HCO\_PrintDataCont displays the content of the
     158             : ! data container Dct.
     159             : !\\
     160             : !\\
     161             : ! !INTERFACE:
     162             : !
     163           0 :       SUBROUTINE HCO_PrintDataCont ( HcoState, Dct, Verbose )
     164             : !
     165             : ! !USES
     166             : !
     167             :       USE HCO_STATE_MOD,     ONLY : HCO_State
     168             :       USE HCO_TYPES_MOD,     ONLY : DataCont, HCO_DCTTYPE_BASE
     169             : !
     170             : ! !INPUT ARGUMENTS:
     171             : !
     172             :       TYPE(HCO_STATE),POINTER    :: HcoState
     173             :       TYPE(DataCont), POINTER    :: Dct
     174             :       INTEGER,        INTENT(IN) :: Verbose
     175             : !
     176             : ! !REVISION HISTORY:
     177             : !  20 Apr 2013 - C. Keller - Initial version
     178             : !  See https://github.com/geoschem/hemco for complete history
     179             : !EOP
     180             : !------------------------------------------------------------------------------
     181             : !BOC
     182             : !
     183             : ! !ARGUMENTS:
     184             : !
     185             :       CHARACTER(LEN=255) :: MSG
     186             :       INTEGER            :: nx, ny, nz, nt
     187             :       REAL(sp)           :: sm, mn, mx
     188             : 
     189             :       ! ================================================================
     190             :       ! HCO_PrintDataCont begins here
     191             :       ! ================================================================
     192             : 
     193           0 :       sm = 0.0_sp
     194           0 :       mn = 0.0_sp
     195           0 :       mx = 0.0_sp
     196             :       sm = 0.0_sp
     197           0 :       nx = 0
     198           0 :       ny = 0
     199           0 :       nz = 0
     200           0 :       nt = Dct%Dta%nt
     201           0 :       IF ( nt > 0 ) THEN
     202           0 :          IF ( Dct%Dta%spaceDim<=2 ) THEN
     203           0 :             IF ( ASSOCIATED(Dct%Dta%V2) ) THEN
     204           0 :                nx = SIZE(Dct%Dta%V2(1)%Val,1)
     205           0 :                ny = SIZE(Dct%Dta%V2(1)%Val,2)
     206           0 :                sm = SUM(Dct%Dta%V2(1)%Val)
     207           0 :                mn = MINVAL(Dct%Dta%V2(1)%Val)
     208           0 :                mx = MAXVAL(Dct%Dta%V2(1)%Val)
     209             :             ENDIF
     210             :          ELSE
     211           0 :             IF ( ASSOCIATED(Dct%Dta%V3) ) THEN
     212           0 :                nx = SIZE(Dct%Dta%V3(1)%Val,1)
     213           0 :                ny = SIZE(Dct%Dta%V3(1)%Val,2)
     214           0 :                nz = SIZE(Dct%Dta%V3(1)%Val,3)
     215           0 :                sm = SUM(Dct%Dta%V3(1)%Val)
     216           0 :                mn = MINVAL(Dct%Dta%V3(1)%Val)
     217           0 :                mx = MAXVAL(Dct%Dta%V3(1)%Val)
     218             :             ENDIF
     219             :          ENDIF
     220             :       ENDIF
     221             : 
     222             :       ! Print name for verbose > 0
     223           0 :       IF ( HCO_IsVerb(HcoState%Config%Err,1) ) THEN
     224           0 :          MSG = 'Container ' // TRIM(Dct%cName)
     225           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     226             :       ENDIF
     227             : 
     228             :       ! Eventually add details
     229           0 :       IF ( HCO_IsVerb(HcoState%Config%Err,Verbose) ) THEN
     230             : 
     231             :          ! General information
     232           0 :          write(MSG,*) '   -->Data type       : ', Dct%DctType
     233           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     234           0 :          write(MSG,*) '   -->Container ID    : ', Dct%cID
     235           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     236           0 :          write(MSG,*) '   -->Target ID       : ', Dct%targetID
     237           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     238           0 :          write(MSG,*) '   -->File data home?   ', Dct%DtaHome
     239           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     240           0 :          write(MSG,*) '   -->Source file     : ', TRIM(Dct%Dta%ncFile)
     241           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     242           0 :          write(MSG,*) '   -->ncRead?           ', Dct%Dta%ncRead
     243           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     244           0 :          write(MSG,*) '   -->Shared data file? ', Dct%Dta%DoShare
     245           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     246           0 :          IF ( Dct%Dta%ncRead ) THEN
     247           0 :             write(MSG,*) '   -->Source parameter: ', TRIM(Dct%Dta%ncPara)
     248           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     249           0 :             write(MSG,*) '   -->Year range      : ', Dct%Dta%ncYrs
     250           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     251           0 :             write(MSG,*) '   -->Month range     : ', Dct%Dta%ncMts
     252           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     253           0 :             write(MSG,*) '   -->Day range       : ', Dct%Dta%ncDys
     254           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     255           0 :             write(MSG,*) '   -->Hour range      : ', Dct%Dta%ncHrs
     256           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     257           0 :             write(MSG,*) '   -->SpaceDim        : ', Dct%Dta%SpaceDim
     258           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     259             :          ENDIF
     260           0 :          IF ( NZ > 0 ) THEN
     261           0 :             write(MSG,*) '   -->Array dimension : ', nx,ny,nz
     262             :          ELSE
     263           0 :             write(MSG,*) '   -->Array dimension : ', nx,ny
     264             :          ENDIF
     265           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     266           0 :          write(MSG,*) '   -->Array sum       : ', sm
     267           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     268           0 :          write(MSG,*) '   -->Array min & max : ', mn,mx
     269           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     270           0 :          write(MSG,*) '   -->Time dimension  : ', nt
     271           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     272           0 :          write(MSG,*) '   -->Delta t[h]      : ', Dct%Dta%DeltaT
     273           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     274           0 :          write(MSG,*) '   -->Local time?       ', Dct%Dta%IsLocTime
     275           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     276           0 :          IF ( ASSOCIATED(Dct%Dta%tIDx) ) THEN
     277           0 :             write(MSG,*) '   -->Tempres         : ', &
     278           0 :                TRIM(Dct%Dta%tIDx%TempRes)
     279           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     280             :          ENDIF
     281           0 :          write(MSG,*) '   -->OrigUnit        : ',TRIM(Dct%Dta%OrigUnit)
     282           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     283           0 :          write(MSG,*) '   -->Concentration?    ', Dct%Dta%IsConc
     284           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     285           0 :          write(MSG,*) '   -->Coverage        : ', Dct%Dta%Cover
     286           0 :          CALL HCO_MSG(HcoState%Config%Err,MSG)
     287             : 
     288             :          ! For base emissions
     289           0 :          IF ( Dct%DctType==HCO_DCTTYPE_BASE ) THEN
     290           0 :             write(MSG,*) '   -->Extension Nr    : ', Dct%ExtNr
     291           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     292           0 :             write(MSG,*) '   -->Species name    : ',TRIM(Dct%SpcName)
     293           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     294           0 :             write(MSG,*) '   -->HEMCO species ID: ', Dct%HcoID
     295           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     296           0 :             write(MSG,*) '   -->Category        : ', Dct%Cat
     297           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     298           0 :             write(MSG,*) '   -->Hierarchy       : ', Dct%Hier
     299           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     300           0 :             IF ( nz == 0 ) THEN
     301           0 :                write(MSG,*) '   -->2D emitted into : ', Dct%Dta%EmisL1, &
     302           0 :                             ' and ', Dct%Dta%EmisL2
     303           0 :                CALL HCO_MSG(HcoState%Config%Err,MSG)
     304             :             ENDIF
     305             : 
     306             :          ! For scale factors
     307             :          ELSE
     308           0 :             write(MSG,*) '   -->Scal ID         : ', Dct%ScalID
     309           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     310           0 :             write(MSG,*) '   -->Operator        : ', Dct%Oper
     311           0 :             CALL HCO_MSG(HcoState%Config%Err,MSG)
     312             :          ENDIF
     313             :       ENDIF
     314             : 
     315           0 :       END SUBROUTINE HCO_PrintDataCont
     316             : !EOC
     317             : END MODULE HCO_LOGFILE_MOD

Generated by: LCOV version 1.14