LCOV - code coverage report
Current view: top level - ionosphere/waccmx - savefield_waccm.F90 (source / functions) Hit Total Coverage
Test: coverage.info Lines: 3 13 23.1 %
Date: 2025-03-14 01:26:08 Functions: 1 1 100.0 %

          Line data    Source code
       1             : module savefield_waccm
       2             :   use shr_kind_mod,only: r8 => shr_kind_r8 ! 8-byte reals
       3             :   use cam_history ,only: hist_fld_active,outfld  ! Routine to output fields to history files
       4             : !
       5             : ! Save fields to WACCM output history file.
       6             : !
       7             :   implicit none
       8             :   private
       9             :   public :: savefld_waccm
      10             : 
      11             : contains
      12             : !-----------------------------------------------------------------------
      13      204288 :   subroutine savefld_waccm(f,name,nlev,i0,i1,j0,j1)
      14             : !
      15             : ! Save field to WACCM history. 
      16             : ! Call to addfld must be made in edyn_init for each field to be saved.
      17             : ! Field names must be in user_nl_cam to be written to the file. 
      18             : !
      19             : ! Args:
      20             :     integer,intent(in) :: nlev,i0,i1,j0,j1
      21             :     real(r8),dimension(nlev,i0:i1,j0:j1),intent(in) :: f
      22             :     character(len=*),intent(in) :: name
      23             : !
      24             : ! Local:
      25             :     integer :: i,j,k
      26      204288 :     real(r8) :: diag_ik(i0:i1,nlev)
      27             : !
      28      204288 :     if (.not.hist_fld_active(name)) return
      29             : 
      30           0 :     if (nlev /= 1) then
      31           0 :       do j=j0,j1
      32           0 :         do i=i0,i1
      33           0 :           do k=1,nlev
      34           0 :             diag_ik(i,k) = f(nlev-k+1,i,j)
      35             :           enddo
      36             :         enddo
      37           0 :         call outfld(name,diag_ik,i1-i0+1,j)
      38             :       enddo
      39             :     else
      40           0 :       do j=j0,j1
      41           0 :         do i=i0,i1
      42           0 :           diag_ik(i,1) = f(1,i,j)
      43             :         enddo
      44           0 :         call outfld(name,diag_ik,i1-i0+1,j)
      45             :       enddo
      46             :     endif
      47             :   end subroutine savefld_waccm
      48             : 
      49             : end module savefield_waccm

Generated by: LCOV version 1.14