70 |
end |
end |
71 |
|
|
72 |
subroutine getsice(iunit,idim1,idim2,jdim1,jdim2,im1,im2,jm1,jm2, |
subroutine getsice(iunit,idim1,idim2,jdim1,jdim2,im1,im2,jm1,jm2, |
73 |
. nSx,nSy,nPx,nPy,bi,bj,biglobal,bjglobal,nymd,nhms,sice) |
. nSx,nSy,nPx,nPy,bi,bj,biglobal,bjglobal,nymd,nhms,sice) |
74 |
C************************************************************************ |
C************************************************************************ |
75 |
C |
C |
76 |
C!ROUTINE: GETSICE |
C!ROUTINE: GETSICE |
115 |
#include "CPP_EEOPTIONS.h" |
#include "CPP_EEOPTIONS.h" |
116 |
|
|
117 |
integer iunit,idim1,idim2,jdim1,jdim2,im1,im2,jm1,jm2,nSx,nSy |
integer iunit,idim1,idim2,jdim1,jdim2,im1,im2,jm1,jm2,nSx,nSy |
118 |
integer bi,bj,biglobal.bjglobal,nymd,nhms |
integer nPx,nPy,bi,bj,biglobal,bjglobal,nymd,nhms |
119 |
|
|
120 |
_RL sice(idim1:idim2,jdim1:jdim2,nSx,nSy) |
_RL sice(idim1:idim2,jdim1:jdim2,nSx,nSy) |
121 |
|
|
125 |
|
|
126 |
character*8 cname |
character*8 cname |
127 |
character*80 cdscrip |
character*80 cdscrip |
128 |
_RL fac1, fac2, lat0, lon0, timebc1, timebc2, timemod, undef |
real fac1, fac2, lat0, lon0, timebc1, timebc2, timemod, undef |
129 |
logical first, found, error |
logical first, found, error |
130 |
integer i,j,n,nn,iyear,iyearbc,nd,ndby3,imbc,jmbc,npxbc,npybd |
integer i,j,n,nn,iyear,iyearbc,nd,ndby3,imbc,jmbc,npxbc,npybc |
131 |
integer ndatebc,nhmsbc(ndmax), nhmsbc1, nhmsbc2,nrec |
integer ndatebc,nhmsbc(ndmax), nhmsbc1, nhmsbc2,nrec |
132 |
integer nymdbc(ndmax),nymdbc1,nymdbc2,nymdmod |
integer nymdbc(ndmax),nymdbc1,nymdbc2,nymdmod |
133 |
|
|
134 |
_RL sicebc1(im2,jm2,nPx,nPy),sicebc2(im2,jm2,nPx,nPy) |
real sicebc1(im2,jm2,nPx,nPy),sicebc2(im2,jm2,nPx,nPy) |
135 |
|
|
136 |
C--------- Variable Initialization --------------------------------- |
C--------- Variable Initialization --------------------------------- |
137 |
|
|
139 |
data error /.false./ |
data error /.false./ |
140 |
|
|
141 |
c save header info |
c save header info |
142 |
save imbc,jmbc,npxbc,npybc,lat0,lon0,ndatebc,undef,nymdbc,nhmsbc |
c save imbc,jmbc,npxbc,npybc,lat0,lon0,ndatebc,undef,nymdbc,nhmsbc |
143 |
save nymdbc1, nymdbc2, nhmsbc1, nhmsbc2 |
c save nymdbc1, nymdbc2, nhmsbc1, nhmsbc2 |
144 |
save first |
c save first |
145 |
save sicebc1, sicebc2 |
c save sicebc1, sicebc2 |
146 |
|
|
147 |
c this only works for between 1950-2050 |
c this only works for between 1950-2050 |
148 |
if (nymd .lt. 500101) then |
if (nymd .lt. 500101) then |
360 |
#include "CPP_EEOPTIONS.h" |
#include "CPP_EEOPTIONS.h" |
361 |
|
|
362 |
integer iunit,idim1,idim2,jdim1,jdim2,im1,im2,jm1,jm2,nSx,nSy |
integer iunit,idim1,idim2,jdim1,jdim2,im1,im2,jm1,jm2,nSx,nSy |
363 |
integer bi,bj,biglobal.bjglobal,nymd,nhms |
integer nPx,nPy,bi,bj,biglobal,bjglobal,nymd,nhms |
364 |
|
|
365 |
_RL sst(idim1:idim2,jdim1:jdim2,nSx,nSy) |
_RL sst(idim1:idim2,jdim1:jdim2,nSx,nSy) |
366 |
|
|
370 |
|
|
371 |
character*8 cname |
character*8 cname |
372 |
character*80 cdscrip |
character*80 cdscrip |
373 |
_RL fac1, fac2, lat0, lon0, timebc1, timebc2, timemod, undef |
real fac1, fac2, lat0, lon0, timebc1, timebc2, timemod, undef |
374 |
logical first, found, error |
logical first, found, error |
375 |
integer i,j,n,nn,iyear,iyearbc,nd,ndby3,imbc,jmbc,npxbc,npybd |
integer i,j,n,nn,iyear,iyearbc,nd,ndby3,imbc,jmbc,npxbc,npybc |
376 |
integer ndatebc,nhmsbc(ndmax), nhmsbc1, nhmsbc2,nrec |
integer ndatebc,nhmsbc(ndmax), nhmsbc1, nhmsbc2,nrec |
377 |
integer nymdbc(ndmax),nymdbc1,nymdbc2,nymdmod |
integer nymdbc(ndmax),nymdbc1,nymdbc2,nymdmod |
378 |
|
|
379 |
_RL sstbc1(im2,jm2,nPx,nPy),sstbc2(im2,jm2,nPx,nPy) |
real sstbc1(im2,jm2,nPx,nPy),sstbc2(im2,jm2,nPx,nPy) |
380 |
|
|
381 |
C--------- Variable Initialization --------------------------------- |
C--------- Variable Initialization --------------------------------- |
382 |
|
|
384 |
data error /.false./ |
data error /.false./ |
385 |
|
|
386 |
c save header info |
c save header info |
387 |
save imbc,jmbc,npxbc,npybc,lat0,lon0,ndatebc,undef,nymdbc,nhmsbc |
c save imbc,jmbc,npxbc,npybc,lat0,lon0,ndatebc,undef,nymdbc,nhmsbc |
388 |
save nymdbc1, nymdbc2, nhmsbc1, nhmsbc2 |
c save nymdbc1, nymdbc2, nhmsbc1, nhmsbc2 |
389 |
save first |
c save first |
390 |
save sstbc1, sstbc2 |
c save sstbc1, sstbc2 |
391 |
|
|
392 |
c this only works for between 1950-2050 |
c this only works for between 1950-2050 |
393 |
if (nymd .lt. 500101) then |
if (nymd .lt. 500101) then |
419 |
|
|
420 |
close(iunit) |
close(iunit) |
421 |
open (iunit,form='unformatted',access='direct', |
open (iunit,form='unformatted',access='direct', |
422 |
. recl=im2*jm2nPx*nPy*4) |
. recl=im2*jm2*nPx*nPy*4) |
423 |
nrec = 1 |
nrec = 1 |
424 |
call bcheader (iunit, ndmax, nrec, |
call bcheader (iunit, ndmax, nrec, |
425 |
. cname, cdscrip, imbc, jmbc, npxbc, npybc, lat0, lon0, |
. cname, cdscrip, imbc, jmbc, npxbc, npybc, lat0, lon0, |
454 |
C if climatology, fill dates for data with current model year |
C if climatology, fill dates for data with current model year |
455 |
if (iyearbc.eq.0) then |
if (iyearbc.eq.0) then |
456 |
write(6,*) |
write(6,*) |
457 |
write(6,*) 'Climatological Dataset is being used.' |
write(6,*)'Climatological Dataset is being used.' |
458 |
write(6,*) 'Current model year will be used to fill Header Dates' |
write(6,*)'Current model year is used to fill Header Dates' |
459 |
do n = 2, ndatebc-1 |
do n = 2, ndatebc-1 |
460 |
nymdbc(n) = nymdbc(n) +(nymdmod/10000)*10000 |
nymdbc(n) = nymdbc(n) +(nymdmod/10000)*10000 |
461 |
enddo |
enddo |
570 |
|
|
571 |
integer iunit,im,jm,nPx,nPy,nrec1,nrec2 |
integer iunit,im,jm,nPx,nPy,nrec1,nrec2 |
572 |
|
|
573 |
_RL field1(im,jm) |
real field1(im,jm,nPx,nPy) |
574 |
_RL field2(im,jm) |
real field2(im,jm,nPx,nPy) |
575 |
|
|
576 |
integer i,j,n1,n2 |
integer i,j,n1,n2 |
577 |
real*4 f1(im,jm,nPx,nPy), f1(im,jm,nPx,nPy) |
real*4 f1(im,jm,nPx,nPy), f2(im,jm,nPx,nPy) |
578 |
|
|
579 |
C--------- Read file ----------------------------------------------- |
C--------- Read file ----------------------------------------------- |
580 |
read(iunit,rec=nrec1) f1 |
read(iunit,rec=nrec1) f1 |
630 |
character*8 cname |
character*8 cname |
631 |
character*80 cdscrip |
character*80 cdscrip |
632 |
integer im,jm,npx,npy,ndatebc,nymdbc(ndmax),nhmsbc(ndmax) |
integer im,jm,npx,npy,ndatebc,nymdbc(ndmax),nhmsbc(ndmax) |
633 |
_RL lat0,lon0,undef |
real lat0,lon0,undef |
634 |
logical error |
logical error |
635 |
|
|
636 |
integer i,n |
integer i,n |
637 |
integer*4 im_32,jm_32,npx_32,npy_32 |
integer*4 im_32,jm_32,npx_32,npy_32 |
638 |
integer*4 ndatebc_32(ndmax),nhmsbc_32(ndmax) |
integer*4 ndatebc_32,nhmsbc_32(ndmax),nymdbc_32(ndmax) |
639 |
real*4 lat0_32,lon0_32,undef_32 |
real*4 lat0_32,lon0_32,undef_32 |
640 |
|
|
641 |
C--------- Read file ----------------------------------------------- |
C--------- Read file ----------------------------------------------- |