IBM XL Fortran for AIX, V12.1 (5724-U82) Version 12.01.0000.0001 --- ../interp/polfixs.F 03/09/11 11:04:43 >>>>> OPTIONS SECTION <<<<< *** Options In Effect *** == On / Off Options == CR DBG ESCAPE FULLPATH I4 INLGLUE NOLIBESSL NOLIBPOSIX OBJECT SOURCE STRICT SWAPOMP THREADED UNWIND ZEROSIZE == Options Of Integer Type == ALIAS_SIZE(65536) MAXMEM(-1) OPTIMIZE(2) SPILLSIZE(2000) STACKTEMP(0) == Options Of Character Type == 64(LARGETYPE) ALIAS(STD,NOINTPTR) ALIGN(BINDC(POWER),STRUCT(NATURAL)) ARCH(PWR6) ATTR(FULL) AUTODBL(NONE) DESCRIPTOR(V1) DIRECTIVE(IBM*,IBMT) ENUM() FLAG(I,I) FLOAT(RNDSNGL,MAF,FOLD,RNGCHK,SINGLE) FREE(F90) HALT(S) IEEE(NEAR) INTSIZE(4) LANGLVL(EXTENDED) REALSIZE(4) NOSAVE() TUNE(PWR6) UNROLL(AUTO) XREF(FULL) XLF2003(NOPOLYMORPHIC,NOBOZLITARGS,NOSTOPEXCEPT,NOVOLATILE,NOAUTOREALLOC,OLDNANINF) XLF77(LEADZERO,BLANKPAD) XLF90(NOSIGNEDZERO,NOAUTODEALLOC,OLDPAD) >>>>> SOURCE SECTION <<<<< 1 |#line 1 "../interp/polfixs.F" 1 |!BOP 2 |! 3 |! !ROUTINE: polfixs.F90 4 |! 5 |! 6 |! !DESCRIPTION: 7 |! This subroutine averages multiple pole scalar values 8 |! on a latitude/longitude grid. bitmaps may be averaged too. 9 |! 10 |! !REVISION HISTORY: 11 |! 04-10-96 Mark Iredell; Initial Specification 12 |! 13 |! INPUT ARGUMENT LIST: 14 |! no - integer number of grid points 15 |! nx - integer leading dimension of fields 16 |! km - integer number of fields 17 |! rlat - real (no) latitudes in degrees 18 |! rlon - real (no) longitudes in degrees 19 |! ib - integer (km) bitmap flags 20 |! lo - logical*1 (nx,km) bitmaps (if some ib(k)=1) 21 |! go - real (nx,km) fields 22 |! 23 |! OUTPUT ARGUMENT LIST: 24 |! lo - logical*1 (nx,km) bitmaps (if some ib(k)=1) 25 |! go - real (nx,km) fields 26 |! 27 |! !INTERFACE: 28 |subroutine polfixs(nm,nx,km,rlat,rlon,ib,lo,go) 29 |!EOP 30 | implicit none 31 | real, PARAMETER :: rlatnp=89.9995, rlatsp=-89.9995 32 | integer :: n, nm, k, km, nx 33 | real :: tsp, gnp, gsp, wsp, tnp, wnp 34 | real :: rlat(nm),rlon(nm) 35 | integer :: ib(km) 36 | real :: go(nx,km) 37 | logical*1 :: lo(nx,km) 38 |#line 40 40 | do k=1,km 41 | wnp=0.0 42 | gnp=0.0 43 | tnp=0.0 44 | wsp=0.0 45 | gsp=0.0 46 | tsp=0.0 47 | ! average multiple pole values 48 | do n=1,nm 49 | if(rlat(n).ge.rlatnp) then 50 | wnp=wnp+1 51 | if(ib(k).eq.0.or.lo(n,k)) then 52 | gnp=gnp+go(n,k) 53 | tnp=tnp+1 54 | endif 55 | elseif(rlat(n).le.rlatsp) then 56 | wsp=wsp+1 57 | if(ib(k).eq.0.or.lo(n,k)) then 58 | gsp=gsp+go(n,k) 59 | tsp=tsp+1 60 | endif 61 | endif 62 | enddo 63 | ! distribute average values back to multiple poles 64 | if(wnp.gt.1) then 65 | if(tnp.ge.wnp/2) then 66 | gnp=gnp/tnp 67 | else 68 | gnp=0. 69 | endif 70 | do n=1,nm 71 | if(rlat(n).ge.rlatnp) then 72 | if(ib(k).ne.0) lo(n,k)=tnp.ge.wnp/2 73 | go(n,k)=gnp 74 | endif 75 | enddo 76 | endif 77 | if(wsp.gt.1) then 78 | if(tsp.ge.wsp/2) then 79 | gsp=gsp/tsp 80 | else 81 | gsp=0. 82 | endif 83 | do n=1,nm 84 | if(rlat(n).le.rlatsp) then 85 | if(ib(k).ne.0) lo(n,k)=tsp.ge.wsp/2 86 | go(n,k)=gsp 87 | endif 88 | enddo 89 | endif 90 | enddo 91 |end subroutine polfixs >>>>> ATTRIBUTE AND CROSS REFERENCE SECTION <<<<< IDENTIFIER NAME CROSS REFERENCE AND ATTRIBUTES gnp Automatic, Real(4), Offset: 0, Alignment: full word 0-33.27$ 0-42.6@ 0-52.15@ 0-52.19 0-66.12@ 0-66.16 0-68.12@ 0-73.23 go Reference argument, Real(4) (1:?, 1:?), Offset: 0, Alignment: full word 0-36.22$ 0-28.45 0-52.23 0-58.23 0-73.15@ 0-86.15@ gsp Automatic, Real(4), Offset: 0, Alignment: full word 0-33.32$ 0-45.6@ 0-58.15@ 0-58.19 0-79.12@ 0-79.16 0-81.12@ 0-86.23 ib Reference argument, Integer(4) (1:?), Offset: 0, Alignment: full word 0-35.22$ 0-28.39 0-51.15 0-57.15 0-72.18 0-85.18 k Automatic, Integer(4), Offset: 0, Alignment: full word 0-32.29$ 0-40.6@ 0-51.18 0-51.34 0-52.28 0-57.18 0-57.34 0-58.28 0-72.21 0-72.35 0-73.20 0-85.21 0-85.35 0-86.20 km Reference argument, Integer(4), Offset: 0, Alignment: full word 0-32.32$ 0-28.26 0-35.25 0-35.25 0-36.28 0-36.28 0-37.28 0-37.28 0-40.10 lo Reference argument, Logical(1) (1:?, 1:?), Offset: 0, Alignment: byte 0-37.22$ 0-28.42 0-51.29 0-57.29 0-72.30@ 0-85.30@ n Automatic, Integer(4), Offset: 0, Alignment: full word 0-32.22$ 0-48.9@ 0-49.17 0-51.32 0-52.26 0-55.21 0-57.32 0-58.26 0-70.12@ 0-71.20 0-72.33 0-73.18 0-83.12@ 0-84.20 0-85.33 0-86.18 nm Reference argument, Integer(4), Offset: 0, Alignment: full word 0-32.25$ 0-28.20 0-34.27 0-34.27 0-34.36 0-34.36 0-48.13 0-70.16 0-83.16 nx Reference argument, Integer(4), Offset: 0, Alignment: full word 0-32.36$ 0-28.23 0-36.25 0-36.25 0-37.25 0-37.25 polfixs Subroutine 0-28.12$ rlat Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-34.22$ 0-28.29 0-49.12 0-55.16 0-71.15 0-84.15 rlatnp Parameter, Real(4) 0-31.22$ 0-49.23 0-71.26 rlatsp Parameter, Real(4) 0-31.38$ 0-55.27 0-84.26 rlon Reference argument, Real(4) (1:?), Offset: 0, Alignment: full word 0-34.31$ 0-28.34 tnp Automatic, Real(4), Offset: 0, Alignment: full word 0-33.42$ 0-43.6@ 0-53.15@ 0-53.19 0-65.12 0-66.20 0-72.38 tsp Automatic, Real(4), Offset: 0, Alignment: full word 0-33.22$ 0-46.6@ 0-59.15@ 0-59.19 0-78.12 0-79.20 0-85.38 wnp Automatic, Real(4), Offset: 0, Alignment: full word 0-33.47$ 0-41.6@ 0-50.12@ 0-50.16 0-64.9 0-65.19 0-72.45 wsp Automatic, Real(4), Offset: 0, Alignment: full word 0-33.37$ 0-44.6@ 0-56.12@ 0-56.16 0-77.9 0-78.19 0-85.45 ** polfixs === End of Compilation 1 === >>>>> FILE TABLE SECTION <<<<< FILE CREATION FROM FILE NO FILENAME DATE TIME FILE LINE 0 ../interp/polfixs.F 03/09/11 11:04:43 >>>>> COMPILATION EPILOGUE SECTION <<<<< FORTRAN Summary of Diagnosed Conditions TOTAL UNRECOVERABLE SEVERE ERROR WARNING INFORMATIONAL (U) (S) (E) (W) (I) 0 0 0 0 0 0 Source records read....................................... 91 1501-510 Compilation successful for file polfixs.F. 1501-543 Object file created.