diff --git a/src/define_cloud.f90 b/src/define_cloud.f90 index b041a097ce9a3196314ccc0d3ee04b3f0b784fb5..90a17407ece9971fd3b1b8360f07d8042585a6e8 100644 --- a/src/define_cloud.f90 +++ b/src/define_cloud.f90 @@ -16,7 +16,7 @@ !------------------------------------------------------------------------------| !------------------------------------------------------------------------------| -subroutine define_cloud (cl,params,zisodisp) +subroutine define_cloud (cl,params,zi) !------------------------------------------------------------------------------| !(((((((((((((((( Purpose of the routine )))))))))))))))))))))))))))))))))))))) @@ -38,7 +38,8 @@ implicit none type (cloud) cl type (parameters) params -double precision zisodisp(2**params%levelmax_oct+1,2**params%levelmax_oct+1) +type (ziso) zi +!double precision zisodisp(2**params%levelmax_oct+1,2**params%levelmax_oct+1) !------------------------------------------------------------------------------| !(((((((((((((((( declaration of the subroutine internal variables ))))))))))))) @@ -70,7 +71,10 @@ if (params%irestart.eq.0) then allocate (cl%temp(1), stat=err) ; if (err.ne.0) call stop_run ('Error alloc cl%temp in define_cloud$') allocate (cl%press(1), stat=err) ; if (err.ne.0) call stop_run ('Error alloc cl%press in define_cloud$') allocate (cl%tag(1), stat=err) ; if (err.ne.0) call stop_run ('Error alloc cl%tag in define_cloud$') - if (params%isobc) zisodisp=0.d0 + if (params%isobc) then + allocate (zi%zisodisp(2**params%levelmax_oct+1,2**params%levelmax_oct+1), stat=err); if (err.ne.0) call stop_run ('Error alloc zi%zisodisp in define_cloud$') + zi%zisodisp=0.d0 + endif else open (19,file=trim(params%restartfile),status='old',form='unformatted') @@ -93,6 +97,7 @@ else allocate (cl%temp(cl%np),stat=err) ; if (err.ne.0) call stop_run ('Error alloc cl%temp in define_cloud$') allocate (cl%press(cl%np),stat=err) ; if (err.ne.0) call stop_run ('Error alloc cl%press in define_cloud$') allocate (cl%tag(cl%np),stat=err) ; if (err.ne.0) call stop_run ('Error alloc cl%tag in define_cloud$') + if (params%isobc) allocate (zi%zisodisp(2**params%levelmax_oct+1,2**params%levelmax_oct+1), stat=err); if (err.ne.0) call stop_run ('Error alloc zi%zisodisp in define_cloud$') read (19) (x, & y, & @@ -146,7 +151,7 @@ else i=1,cl%np) ! read isostasy basal displacement array - dwhipp 11/09 - if (params%isobc) read (19) ((zisodisp(i,j),j=1,2**params%levelmax_oct+1),& + if (params%isobc) read (19) ((zi%zisodisp(i,j),j=1,2**params%levelmax_oct+1),& i=1,2**params%levelmax_oct+1) close (19)