subroutine loglcbas_to_lcbas(loglcbas,lcbas) !$$$ subprogram documentation block ! . . . . ! subprogram: loglcbas_to_lcbas tlm for loglcbas to lcbas ! prgmmr: zhu org: np20 date: 2011-06-30 ! ! abstract: get lcbas from logarithm of lcbas ! ! program history log: ! 2011-06-30 zhu ! ! input argument list: ! loglcbas ! ! output argument list: ! lcbas ! ! attributes: ! language: f90 ! machine: ibm RS/6000 SP ! !$$$ use kinds, only: r_kind,i_kind use gridmod, only: lat2,lon2 use derivsmod, only: dlcbasdlog implicit none real(r_kind),intent(in ) :: loglcbas(lat2,lon2) real(r_kind),intent( out) :: lcbas(lat2,lon2) integer(i_kind) i,j do j=1,lon2 do i=1,lat2 lcbas(i,j)=dlcbasdlog(i,j)*loglcbas(i,j) end do end do end subroutine loglcbas_to_lcbas subroutine loglcbas_to_lcbas_ad(loglcbas,lcbas) !$$$ subprogram documentation block ! . . . . ! subprogram: loglcbas_to_lcbas_ad adjoint of loglcbas_to_lcbas ! prgmmr: zhu org: np20 date: 2011-06-30 ! ! abstract: adjoint of loglcbas_to_lcbas ! ! program history log: ! 2011-06-30 zhu ! ! input argument list: ! loglcbas ! lcbas ! ! output argument list: ! loglcbas ! lcbas ! ! attributes: ! language: f90 ! machine: ibm RS/6000 SP ! !$$$ use kinds, only: r_kind,i_kind use constants, only: zero use gridmod, only: lat2,lon2 use derivsmod, only: dlcbasdlog implicit none real(r_kind),intent(inout) :: loglcbas(lat2,lon2) real(r_kind),intent(inout) :: lcbas(lat2,lon2) integer(i_kind) i,j do j=1,lon2 do i=1,lat2 loglcbas(i,j)=loglcbas(i,j)+dlcbasdlog(i,j)*lcbas(i,j) lcbas(i,j)=zero end do end do end subroutine loglcbas_to_lcbas_ad