[Dart-dev] [3843] DART/trunk/models/wrf/model_mod.f90: Make the string lengths for netcdf variable names NF90_MAX_NAME long.
nancy at ucar.edu
nancy at ucar.edu
Mon May 4 16:27:04 MDT 2009
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/dart-dev/attachments/20090504/49bbbc7d/attachment.html
-------------- next part --------------
Modified: DART/trunk/models/wrf/model_mod.f90
===================================================================
--- DART/trunk/models/wrf/model_mod.f90 2009-05-04 20:47:45 UTC (rev 3842)
+++ DART/trunk/models/wrf/model_mod.f90 2009-05-04 22:27:03 UTC (rev 3843)
@@ -256,6 +256,10 @@
! JPH move map stuff into common (can move back into S/R later?)
real(r8) :: stdlon,truelat1,truelat2 !,latinc,loninc
+! have a single, module global error string (rather than
+! replicate it in each subroutine and use up more stack space)
+character(len=129) :: errstring
+
contains
!#######################################################################
@@ -273,7 +277,6 @@
integer :: my_index
integer :: var_element_list(max_state_variables)
-character(len=129) :: errstring
!----------------------------------------------------------------------
@@ -630,7 +633,6 @@
integer :: i, id
logical, parameter :: debug = .false.
-character(len=129) :: errstring
integer :: type_w, type_gz
@@ -786,8 +788,6 @@
integer, dimension(2) :: ll, lr, ul, ur, ll_v, lr_v, ul_v, ur_v
integer :: rc, ill, ilr, iul, iur, i1, i2
-character(len=129) :: errstring
-
real(r8), dimension(2) :: fld
real(r8), allocatable, dimension(:) :: v_h, v_p
@@ -2260,8 +2260,6 @@
real(r8) :: dx,dy,dz,dxm,dym,dzm
integer, dimension(2) :: ll, lr, ul, ur
-character(len=129) :: errstring
-
real(r8), allocatable, dimension(:) :: v_h, v_p
! local vars, used in calculating pressure and height
@@ -2589,8 +2587,6 @@
integer :: get_wrf_index
integer :: in
-character(len=129) :: errstring
-
write(errstring,*)'function get_wrf_index should not be called -- still needs updating!'
call error_handler(E_ERR,'get_wrf_index', errstring, &
source, revision, revdate)
@@ -2753,7 +2749,7 @@
integer :: var_id
integer :: i, id
-character(len=129) :: errstring, title
+character(len=129) :: title
character(len=8) :: crdate ! needed by F90 DATE_AND_TIME intrinsic
character(len=10) :: crtime ! needed by F90 DATE_AND_TIME intrinsic
@@ -2767,10 +2763,11 @@
integer :: nlines, linelen
integer :: LineLenDimID, nlinesDimID, nmlVarID
integer :: ind, my_index
-character(len=129) :: attname, varname, unitsval
+character(len=NF90_MAX_NAME) :: attname, varname
+character(len=129) :: unitsval
integer, dimension(5) :: dimids_3D
integer, dimension(4) :: dimids_2D
-logical :: debug = .true.
+logical :: debug = .false.
!-----------------------------------------------------------------
@@ -3462,7 +3459,7 @@
integer :: i,j
real(r8), allocatable, dimension(:,:) :: temp2d
real(r8), allocatable, dimension(:,:,:) :: temp3d
-character(len=10) :: varname
+character(len=NF90_MAX_NAME) :: varname
character(len=1) :: idom
integer, dimension(2) :: dimsizes_2D
integer, dimension(3) :: dimsizes_3D
@@ -4584,7 +4581,6 @@
! Local variables:
- character(len=129) :: errstring
INTEGER :: k
INTEGER :: klo, khi
@@ -4791,7 +4787,10 @@
goto 1
endif
h=xa(khi)-xa(klo)
- if (h.eq.0.) pause 'bad xa input in splint'
+ if (h.eq.0.) then
+ write(*,*) 'bad xa input in splint'
+ stop
+ endif
a=(xa(khi)-x)/h
b=(x-xa(klo))/h
y=a*ya(klo)+b*ya(khi)+((a**3-a)*y2a(klo)+(b**3-b)*y2a(khi))*(h**2)/6.
@@ -5519,11 +5518,11 @@
implicit none
-integer, intent(in) :: ncid
-integer, intent(out) :: bt,bts,sn,sns,we,wes,sls
-logical, parameter :: debug = .false.
-integer :: var_id
-character (len=80) :: name
+integer, intent(in) :: ncid
+integer, intent(out) :: bt,bts,sn,sns,we,wes,sls
+logical, parameter :: debug = .false.
+integer :: var_id
+character (len=NF90_MAX_NAME) :: name
! get wrf grid dimensions
@@ -5939,10 +5938,11 @@
implicit none
integer, intent(in) :: id
-character(len=129), intent(in) :: state_table(num_state_table_columns,max_state_variables)
+character(len=*), intent(in) :: state_table(num_state_table_columns,max_state_variables)
integer, intent(out), optional :: var_element_list(max_state_variables)
integer :: ivar, num_vars
-character(len=129) :: my_string
+! was this for debugging? seems unused.
+!character(len=129) :: my_string
logical :: debug = .false.
if ( present(var_element_list) ) var_element_list = -1
@@ -5951,7 +5951,7 @@
num_vars = 0
do while ( trim(state_table(5,ivar)) /= 'NULL' )
- my_string = state_table(5,ivar)
+ !my_string = state_table(5,ivar)
if ( variable_is_on_domain(state_table(5,ivar),id) ) then
num_vars = num_vars + 1
@@ -6002,13 +6002,13 @@
implicit none
- character(len=129), intent(in) :: bounds_table(num_bounds_table_columns,max_state_variables)
- character(len=129), intent(in) :: wrf_var_name
- real(r8), intent(out) :: lb,ub
- character(len=10), intent(out) :: instructions
+ character(len=*), intent(in) :: bounds_table(num_bounds_table_columns,max_state_variables)
+ character(len=*), intent(in) :: wrf_var_name
+ real(r8), intent(out) :: lb,ub
+ character(len=10),intent(out) :: instructions
- character(len=30) :: wrf_varname_trim, bounds_varname_trim
- character(len=30) :: bound_trim
+ character(len=30) :: wrf_varname_trim, bounds_varname_trim
+ character(len=30) :: bound_trim
integer :: ivar
logical :: debug = .false.
@@ -6066,10 +6066,10 @@
implicit none
-integer, intent(in) :: id
-character(len=129), intent(in) :: domain_id_string
+integer, intent(in) :: id
+character(len=*), intent(in) :: domain_id_string
-integer :: domain_int, i
+integer :: domain_int, i
variable_is_on_domain = .false.
@@ -6102,11 +6102,11 @@
implicit none
-integer, intent(in) :: ncid, id
-integer, intent(in) :: bt, bts, sn, sns, we, wes
-character(len=129), intent(in) :: wrf_var_name
-integer, intent(out) :: var_size(3)
-character(len=129),intent(out) :: stagger
+integer, intent(in) :: ncid, id
+integer, intent(in) :: bt, bts, sn, sns, we, wes
+character(len=*), intent(in) :: wrf_var_name
+integer, intent(out) :: var_size(3)
+character(len=129),intent(out) :: stagger
logical, parameter :: debug = .false.
integer :: var_id, ndims, dimids(10)
@@ -6166,7 +6166,7 @@
implicit none
integer, intent(in) :: ncid, id
-character(len=129), intent(in) :: wrf_var_name
+character(len=*), intent(in) :: wrf_var_name
character(len=129), intent(out) :: description, units
logical, parameter :: debug = .false.
@@ -6243,7 +6243,6 @@
!---
integer :: i,j,m
-character(len=129) :: errstring
i=size(a2d,1)
j=size(a2d,2)
@@ -6277,7 +6276,6 @@
!---
integer :: i,j,k,m
-character(len=129) :: errstring
i=size(a3d,1)
j=size(a3d,2)
@@ -6315,7 +6313,6 @@
!---
integer :: i,j,m
-character(len=129) :: errstring
i=size(a2d,1)
j=size(a2d,2)
@@ -6349,7 +6346,6 @@
!---
integer :: i,j,k,m
-character(len=129) :: errstring
i=size(a3d,1)
j=size(a3d,2)
@@ -6386,9 +6382,9 @@
integer, intent(out) :: year, month, day, hour, minute, second
character(len=19), intent(in) :: tstring
-read(tstring(1:4),'(i4)') year
-read(tstring(6:7),'(i2)') month
-read(tstring(9:10),'(i2)') day
+read(tstring( 1: 4),'(i4)') year
+read(tstring( 6: 7),'(i2)') month
+read(tstring( 9:10),'(i2)') day
read(tstring(12:13),'(i2)') hour
read(tstring(15:16),'(i2)') minute
read(tstring(18:19),'(i2)') second
More information about the Dart-dev
mailing list