LCOV - code coverage report
Current view: top level - control - history_defaults.F90 (source / functions) Hit Total Coverage
Test: coverage.info Lines: 3 3 100.0 %
Date: 2025-03-13 18:42:46 Functions: 1 1 100.0 %

          Line data    Source code
       1             : module history_defaults
       2             : !----------------------------------------------------------------------- 
       3             : ! 
       4             : ! Purpose: contains calls to setup default history stuff that has not found
       5             : !          a proper home yet. Shouldn't really exist.
       6             : !
       7             : ! Public functions/subroutines:
       8             : !   bldfld
       9             : ! 
      10             : ! Author: B.A. Boville from code in cam_history.F90
      11             : !-----------------------------------------------------------------------
      12             :   use constituents, only: pcnst, cnst_name
      13             : 
      14             :   use cam_history,  only: addfld, add_default, horiz_only
      15             :   implicit none
      16             : 
      17             :   PRIVATE
      18             : 
      19             :   public :: bldfld
      20             : 
      21             : #if ( defined BFB_CAM_SCAM_IOP )
      22             :   public :: initialize_iop_history
      23             : #endif
      24             : 
      25             : CONTAINS
      26             : 
      27             : 
      28             : !#######################################################################
      29        1536 :   subroutine bldfld ()
      30             : !
      31             : !----------------------------------------------------------------------- 
      32             : ! 
      33             : ! Purpose: 
      34             : !
      35             : ! Build Master Field List of all possible fields in a history file.  Each field has 
      36             : ! associated with it a "long_name" netcdf attribute that describes what the field is, 
      37             : ! and a "units" attribute.
      38             : ! 
      39             : ! Method: Call a subroutine to add each field
      40             : ! 
      41             : ! Author: CCM Core Group
      42             : ! 
      43             : !-----------------------------------------------------------------------
      44             : !
      45             : ! Local workspace
      46             : !
      47             :     integer m                     ! Index
      48             : 
      49             : !jt
      50             : !jt Maybe add this to scam specific initialization
      51             : !jt
      52             : 
      53             : #if ( defined BFB_CAM_SCAM_IOP )
      54             :     call addfld ('CLAT1&IC',  horiz_only,  'I', ' ','cos lat for bfb testing', gridname='gauss_grid')
      55             :     call add_default ('CLAT1&IC',0,'I')
      56             :     call addfld ('CLON1&IC',  horiz_only,  'I', ' ','cos lon for bfb testing', gridname='gauss_grid')
      57             :     call add_default ('CLON1&IC',0,'I')
      58             :     call addfld ('PHI&IC',    horiz_only,  'I', ' ','lat for bfb testing', gridname='gauss_grid')
      59             :     call add_default ('PHI&IC',0,  'I')
      60             :     call addfld ('LAM&IC',    horiz_only,  'I', ' ','lon for bfb testing', gridname='gauss_grid')
      61             :     call add_default ('LAM&IC',0,  'I')
      62             : #endif
      63             : 
      64             :     call addfld ('DQP', (/ 'lev' /), 'A', 'kg/kg/s','Specific humidity tendency due to precipitation', &
      65        3072 :          gridname='physgrid')
      66             : 
      67        1536 :   end subroutine bldfld
      68             : 
      69             : !#######################################################################
      70             : #if ( defined BFB_CAM_SCAM_IOP  )
      71             :   subroutine initialize_iop_history()
      72             : !
      73             : ! !DESCRIPTION: 
      74             : ! !USES:
      75             :     use iop
      76             :     use phys_control,     only: phys_getopts
      77             : ! !ARGUMENTS:
      78             :     implicit none
      79             : !
      80             : ! !CALLED FROM:
      81             : !
      82             : ! !REVISION HISTORY:
      83             : !
      84             : !EOP
      85             : !
      86             : ! !LOCAL VARIABLES:
      87             :     integer m
      88             : !-----------------------------------------------------------------------
      89             :     call addfld ('CLAT',    horiz_only,   'A', ' ',   'cos lat for bfb testing', gridname='gauss_grid')
      90             :     call add_default ('CLAT',2,' ')
      91             :     call addfld ('q',       (/ 'lev' /),  'A', 'kg/kg',  'Q for scam',gridname='gauss_grid')
      92             :     call add_default ('q',2, ' ')
      93             :     call addfld ('u',       (/ 'lev' /),  'A', 'm/s',    'U for scam',gridname='gauss_grid')
      94             :     call add_default ('u',2,' ')
      95             :     call addfld ('v',       (/ 'lev' /),  'A', 'm/s',    'V for scam',gridname='gauss_grid')
      96             :     call add_default ('v',2,' ')
      97             :     call addfld ('t',       (/ 'lev' /),  'A', 'K',      'Temperature for scam',gridname='gauss_grid')
      98             :     call add_default ('t',2,' ')
      99             :     call addfld ('Tg',      horiz_only,   'A', 'K',      'Surface temperature (radiative) for scam',gridname='physgrid')
     100             :     call add_default ('Tg',2,' ')
     101             :     call addfld ('Ps',      horiz_only,   'A', 'Pa',     'Ps for scam',gridname='gauss_grid')
     102             :     call add_default ('Ps',2,' ')
     103             :     call addfld ('divT3d',  (/ 'lev' /),  'A', 'K',      'Dynamics Residual for T',gridname='gauss_grid')
     104             :     call add_default ('divT3d',2,' ')
     105             :     call addfld ('divU3d',  (/ 'lev' /),  'A', 'K',      'Dynamics Residual for U',gridname='gauss_grid')
     106             :     call add_default ('divU3d',2,' ')
     107             :     call addfld ('divV3d',  (/ 'lev' /),  'A', 'K',      'Dynamics Residual for V',gridname='gauss_grid')
     108             :     call add_default ('divV3d',2,' ')
     109             :     call addfld ('fixmas',  horiz_only,   'A', 'percent','Mass fixer',gridname='gauss_grid')
     110             :     call add_default ('fixmas',2,' ')
     111             :     call addfld ('beta',    horiz_only,   'A', 'percent','Mass fixer',gridname='gauss_grid')
     112             :     call add_default ('beta',2,' ')
     113             :     do m=1,pcnst
     114             :        call addfld (trim(cnst_name(m))//'_dten', (/ 'lev' /), 'A', 'kg/kg', &
     115             :             trim(cnst_name(m))//' IOP Dynamics Residual for '//trim(cnst_name(m)),gridname='gauss_grid')
     116             :        call add_default (trim(cnst_name(m))//'_dten',2,' ')
     117             :        call addfld (trim(cnst_name(m))//'_alph', horiz_only, 'A', 'kg/kg',trim(cnst_name(m))//' alpha constituent fixer', &
     118             :             gridname='gauss_grid')
     119             :        call add_default (trim(cnst_name(m))//'_alph',2,' ')
     120             :        call addfld (trim(cnst_name(m))//'_dqfx', (/ 'lev' /), 'A', 'kg/kg',trim(cnst_name(m))//' dqfx3 fixer',            &
     121             :             gridname='gauss_grid')
     122             :        call add_default (trim(cnst_name(m))//'_dqfx',2,' ')
     123             :     end do
     124             :     call addfld ('shflx',  horiz_only,  'A', 'W/m2', 'Surface sensible heat flux for scam',gridname='physgrid')
     125             :     call add_default ('shflx',2,' ')
     126             :     call addfld ('lhflx',  horiz_only,  'A', 'W/m2', 'Surface latent heat flux for scam',gridname='physgrid')
     127             :     call add_default ('lhflx',2,' ')
     128             :     call addfld ('trefht', horiz_only,  'A', 'K',    'Reference height temperature',gridname='physgrid')
     129             :     call add_default ('trefht',2,' ')
     130             :     call addfld ('Tsair',  horiz_only,  'A', 'K',    'Reference height temperature for scam',gridname='physgrid')
     131             :     call add_default ('Tsair',2,' ')
     132             :     call addfld ('phis',   horiz_only,  'I', 'm2/s2','Surface geopotential for scam',gridname='physgrid')
     133             :     call add_default ('phis',2,' ')
     134             :     call addfld ('Prec',   horiz_only,  'A', 'm/s',  'Total (convective and large-scale) precipitation rate for scam',   &
     135             :          gridname='physgrid')
     136             :     call add_default ('Prec',2,' ')
     137             :     call addfld ('omega',  (/ 'lev' /), 'A', 'Pa/s', 'Vertical velocity (pressure)',gridname='physgrid')
     138             :     call add_default ('omega',2,' ')
     139             : 
     140             :   end subroutine initialize_iop_history
     141             : #endif
     142             : 
     143             : end module history_defaults

Generated by: LCOV version 1.14