Line data Source code
1 : module iondrag 2 : !------------------------------------------------------------------------------- 3 : ! Dummy interface for waccm/iondrag module 4 : !------------------------------------------------------------------------------- 5 : 6 : use shr_kind_mod, only: r8 => shr_kind_r8 7 : use ppgrid ,only: pver 8 : use physics_types,only: physics_state, physics_ptend 9 : use physics_buffer ,only: physics_buffer_desc 10 : 11 : implicit none 12 : 13 : save 14 : 15 : private ! Make default type private to the module 16 : 17 : !------------------------------------------------------------------------------- 18 : ! Public interfaces: 19 : !------------------------------------------------------------------------------- 20 : public :: iondrag_register ! Register variables in pbuf physics buffer 21 : public :: iondrag_init ! Initialization 22 : public :: iondrag_calc ! ion drag tensors lxx,lyy,lxy,lyx 23 : public :: iondrag_readnl 24 : public :: iondrag_timestep_init 25 : public :: do_waccm_ions 26 : 27 : interface iondrag_calc 28 : module procedure iondrag_calc_ions 29 : module procedure iondrag_calc_ghg 30 : end interface 31 : 32 : logical, parameter :: do_waccm_ions = .false. 33 : 34 : contains 35 : 36 : !================================================================================================ 37 : 38 1536 : subroutine iondrag_readnl(nlfile) 39 : 40 : character(len=*), intent(in) :: nlfile ! filepath for file containing namelist input 41 : 42 1536 : end subroutine iondrag_readnl 43 : 44 : !============================================================================== 45 : 46 1536 : subroutine iondrag_register 47 : 48 1536 : end subroutine iondrag_register 49 : 50 : !================================================================================================ 51 : 52 1536 : subroutine iondrag_init( pref_mid ) 53 : 54 : !------------------------------------------------------------------------------- 55 : ! dummy arguments 56 : !------------------------------------------------------------------------------- 57 : real(r8), intent(in) :: pref_mid(pver) 58 : 59 1536 : end subroutine iondrag_init 60 : 61 : !================================================================================================ 62 : 63 370944 : subroutine iondrag_timestep_init 64 370944 : end subroutine iondrag_timestep_init 65 : 66 : !================================================================================================ 67 0 : subroutine iondrag_calc_ions( lchnk, ncol, state, ptend, pbuf, delt ) 68 : 69 : !------------------------------------------------------------------------------- 70 : ! dummy arguments 71 : !------------------------------------------------------------------------------- 72 : integer,intent(in) :: lchnk ! current chunk index 73 : integer,intent(in) :: ncol ! number of atmospheric columns 74 : real(r8), intent(in) :: delt ! time step (s) 75 : type(physics_state), intent(in), target :: state ! Physics state variables 76 : type(physics_ptend), intent(out) :: ptend ! Physics tendencies 77 : type(physics_buffer_desc), pointer :: pbuf(:) ! physics buffer 78 : 79 0 : end subroutine iondrag_calc_ions 80 : 81 : !========================================================================= 82 : 83 62545392 : subroutine iondrag_calc_ghg (lchnk,ncol,state,ptend) 84 : 85 : !--------------------Input arguments------------------------------------ 86 : 87 : integer, intent(in) :: lchnk ! chunk identifier 88 : integer, intent(in) :: ncol ! number of atmospheric columns 89 : 90 : type(physics_state), intent(in) :: state 91 : type(physics_ptend), intent(out):: ptend 92 : 93 1489176 : end subroutine iondrag_calc_ghg 94 : 95 : !=================================================================================== 96 : 97 : end module iondrag