subroutine logvis_to_vis(logvis,vis) !$$$ subprogram documentation block ! . . . . ! subprogram: logvis_to_vis tlm for logvis to vis ! prgmmr: zhu org: np20 date: 2011-06-30 ! ! abstract: get visibility vis from logarithm of vis ! ! program history log: ! 2011-06-30 zhu ! ! input argument list: ! logvis ! ! output argument list: ! vis ! ! attributes: ! language: f90 ! machine: ibm RS/6000 SP ! !$$$ use kinds, only: r_kind,i_kind use gridmod, only: lat2,lon2 use derivsmod, only: dvisdlog implicit none real(r_kind),intent(in ) :: logvis(lat2,lon2) real(r_kind),intent( out) :: vis(lat2,lon2) integer(i_kind) i,j do j=1,lon2 do i=1,lat2 vis(i,j)=dvisdlog(i,j)*logvis(i,j) end do end do end subroutine logvis_to_vis subroutine logvis_to_vis_ad(logvis,vis) !$$$ subprogram documentation block ! . . . . ! subprogram: logvis_to_vis_ad adjoint of logvis_to_vis ! prgmmr: zhu org: np20 date: 2011-06-30 ! ! abstract: adjoint of logvis_to_vis ! ! program history log: ! 2011-06-30 zhu ! ! input argument list: ! logvis ! vis ! ! output argument list: ! logvis ! vis ! ! 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: dvisdlog implicit none real(r_kind),intent(inout) :: logvis(lat2,lon2) real(r_kind),intent(inout) :: vis(lat2,lon2) integer(i_kind) i,j do j=1,lon2 do i=1,lat2 logvis(i,j)=logvis(i,j)+dvisdlog(i,j)*vis(i,j) vis(i,j)=zero end do end do end subroutine logvis_to_vis_ad