⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rdieee.f

📁 计算线性趋势 回归系数 主要用于气象站点值的线性趋势计算
💻 F
字号:
      subroutine rdieee(rieee,a,num)!$$$  SUBPROGRAM DOCUMENTATION BLOCK!                .      .    .                                       .! SUBPROGRAM:    rdieee !   PRGMMR: Gilbert         ORG: W/NP11    DATE: 2000-05-09!! ABSTRACT: This subroutine reads a list of real values in !   32-bit IEEE floating point format.!! PROGRAM HISTORY LOG:! 2000-05-09  Gilbert!! USAGE:    CALL rdieee(rieee,a,num)!   INPUT ARGUMENT LIST:!     rieee    - Input array of floating point values in 32-bit IEEE format.!     num      - Number of floating point values to convert.!!   OUTPUT ARGUMENT LIST:      !     a        - Output array of real values.!! REMARKS: None!! ATTRIBUTES:!   LANGUAGE: Fortran 90!   MACHINE:  IBM SP!!$$$      real(4),intent(in) :: rieee(num)      real,intent(out) :: a(num)      integer,intent(in) :: num      integer(4) :: ieee      real,save :: two23      real,save :: two126      integer,save :: once=0      if ( once .EQ. 0 ) then         once=1         two23=scale(1.0,-23)         two126=scale(1.0,-126)      endif      do j=1,num!!  Transfer IEEE bit string to integer variable!        ieee=transfer(rieee(j),ieee)!!  Extract sign bit, exponent, and mantissa!        isign=ibits(ieee,31,1)        iexp=ibits(ieee,23,8)        imant=ibits(ieee,0,23)        sign=1.0        if (isign.eq.1) sign=-1.0                if ( (iexp.gt.0).and.(iexp.lt.255) ) then          temp=2.0**(iexp-127)          a(j)=sign*temp*(1.0+(two23*real(imant)))        elseif ( iexp.eq.0 ) then          if ( imant.ne.0 ) then            a(j)=sign*two126*two23*real(imant)          else            a(j)=sign*0.0          endif        elseif ( iexp.eq.255 ) then          a(j)=sign*huge(a(j))        endif      enddo      return      end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -