2 subroutine getivariablen(fileName,DateStr,dh,VarName,VarBuff,IM,JSTA_2L,JEND_2U,LM,IM1,JS,JE,LM1)
57 character(len=256) ,
intent(in) :: filename
58 character(len=19) ,
intent(in) :: datestr
59 integer ,
intent(in) :: dh
60 character(*) ,
intent(in) :: varname
61 integer,
intent(out) :: varbuff(im,jsta_2l:jend_2u,lm)
62 integer,
intent(in) :: im,lm,jsta_2l,jend_2u
63 integer,
intent(in) :: im1,lm1,js,je
65 integer :: wrftype,i,j,l,ll
66 integer,
dimension(4) :: start_index, end_index
67 character (len= 4) :: staggering
68 character (len= 3) :: ordering
69 character (len=80),
dimension(3) :: dimnames
70 integer,
allocatable,
dimension(:,:,:,:) :: data
73 character(len=132) :: stagger
79 call ext_ncd_get_var_info(dh,trim(varname),ndim,ordering,stagger,start_index,end_index,wrftype,ierr)
81 write(*,*)
'Error: ',ierr,trim(varname),
' not found in ',filename
85 allocate(
data (end_index(1), end_index(2), end_index(3), 1))
86 write(*,*)
'WrfType in getIVariable= ',wrftype
97 call ext_ncd_read_field(dh,datestr,trim(varname),
data,wrftype,0,0,0,ordering,&
98 staggering, dimnames , &
99 start_index,end_index, &
100 start_index,end_index, &
101 start_index,end_index, &
103 IF ( ierr /= 0 )
THEN
104 write(*,*)
'Error reading ',varname,
' from ',filename
105 write(*,*)
' ndim = ', ndim
106 write(*,*)
' end_index(1) ',end_index(1)
107 write(*,*)
' end_index(2) ',end_index(2)
108 write(*,*)
' end_index(3) ',end_index(3)
112 if (im1>end_index(1))
write(*,*)
'Err:',varname,
' IM1=',im1,&
113 ' but data dim=',end_index(1)
114 if (je>end_index(2))
write(*,*)
'Err:',varname,
' JE=',je,&
115 ' but data dim=',end_index(2)
116 if (lm1>end_index(3))
write(*,*)
'Err:',varname,
' LM1=',lm1,&
117 ' but data dim=',end_index(3)
119 write(*,*)
'Error: ndim = ',ndim
125 varbuff(i,j,l)=
data(i,j,ll,1)
133 end subroutine getivariablen