subroutine depthcorrection(key1,indep) implicit none #include "parameterMER.dec" #include "newGTSPP" #include "vert_pRA.dat" #include "buddyGTSPP" #include "qc_def.inc" integer no_obs,pqual,indunit,rawunit integer ios,numsegs,hiseq integer hseq,nseq,indep integer m,i,j,iend,ist,k,bindep,l,nh integer mim,mmm,mm,n,ddy,yy,mom,kk,nk real dd,depqc,depreal,maxd character*60 filnam character*22 key character*15 key1 character*6 seq character*1 a,bell character*10 p character*24 fa logical goodbuddy c#define debug parameter (bell=char(7)) save goodbuddy=.false. rawunit=21 call fdate(fa) Up_Date(1:4)=fa(21:24) Up_Date(7:8)=fa(9:10) call idate(mom,ddy,yy) write (Up_Date(5:6),'(i2.2)')mom do i=1,8 if(Up_Date(i:i).eq.' ')Up_Date(i:i)='0' enddo print *,mom,ddy,yy,'=idate2',Up_Date nk=Nsurfc nh=num_hists c add history and surface records... do i=1,nk if(SRFC_Code(i).eq.'PEQ$')then if(index(SRFC_Parm(i),'001').ne.0 .or. & (index(SRFC_Parm(i),'041').ne.0) .or. & (index(SRFC_Parm(i),'031').ne.0) .or. & (index(SRFC_Parm(i),'051').ne.0) .or. & (index(SRFC_Parm(i),'1 ').ne.0) .or. & (index(SRFC_Parm(i),'221').ne.0) .or. & (index(SRFC_Parm(i),'31 ').ne.0) .or. & (index(SRFC_Parm(i),'41 ').ne.0) .or. & (index(SRFC_Parm(i),'461').ne.0) .or. & (index(SRFC_Parm(i),'51 ').ne.0) .or. & (index(SRFC_Parm(i),'01 ').ne.0))then do j=1,nos_seg do k=1,no_depths(j) Depth_Press(j,k)=Depth_Press(j,k)*1.0336 enddo read(Deep_Depth(j),'(f5.1)',iostat=ios)dd if(ios.ne.0)then print *,'dd at error=',dd,Deep_Depth(j),j,nos_seg c print *,'enter ' c read(*,'(a)')a if(Deep_Depth(j).eq.'*****')then print *,'depth=',Depth_Press(nos_seg,no_depths(nos_seg)) print *,'etc=',nos_seg,no_depths(nos_seg),bell c print *,'enter ' c read(*,'(a)')a dd=Depth_Press(nos_seg,no_depths(nos_seg)) print * ,'dd=',dd,Depth_Press(nos_seg,no_depths(nos_seg)) print *,'enter ' read(*,'(a)')a goto 111 endif endif dd=dd*1.0336 111 if(dd.gt.1000.)then write(Deep_Depth(j),'(f5.0)')dd else write(Deep_Depth(j),'(f5.1)')dd endif enddo do j=1,num_hists read(Aux_ID(j),'(f8.2)')dd dd=dd*1.0336 write(Aux_ID(j),'(f8.2)')dd enddo num_hists=num_hists+1 Act_Code(num_hists)='DP' Ident_Code(num_hists)= 'CS' PRC_Code(num_hists)='CSCB' Version(num_hists)='1.0' PRC_Date(num_hists)=up_date Act_Parm(num_hists)='DEPH' Aux_ID(num_hists)='0.0000 ' Previous_Val(num_hists)='999.999 ' SRFC_Parm(i)(3:3)='2' SRFC_Code(nk+1)='DPC$' SRFC_Parm(nk+1)='04 ' SRFC_Q_Parm(nk+1)='2' nk=nk+1 SRFC_Code(nk+1)='FRA$' SRFC_Parm(nk+1)='1.0336 ' SRFC_Q_Parm(nk+1)=' ' nk=nk+1 do k=i,nk if(SRFC_Parm(k).eq.'PFR$')then SRFC_Code(k)(3:3)='2' endif enddo goto 999 endif endif if(SRFC_Code(i).eq.'PFR$')then if(index(SRFC_Parm(i),'001').ne.0 .or. & (index(SRFC_Parm(i),'041').ne.0) .or. & (index(SRFC_Parm(i),'031').ne.0) .or. & (index(SRFC_Parm(i),'051').ne.0) .or. & (index(SRFC_Parm(i),'201').ne.0) .or. & (index(SRFC_Parm(i),'211').ne.0) .or. & (index(SRFC_Parm(i),'221').ne.0) .or. & (index(SRFC_Parm(i),'251').ne.0) .or. & (index(SRFC_Parm(i),'461').ne.0))then c need correction.., do j=1,nos_seg do k=1,no_depths(j) Depth_Press(j,k)=Depth_Press(j,k)*1.0336 enddo read(Deep_Depth(j),'(f5.1)',iostat=ios)dd if(ios.ne.0)then print *,'dd at error=',dd,Deep_Depth(j),j,nos_seg c print *,'enter ' c read(*,'(a)')a if(Deep_Depth(j).eq.'*****')then print *,'depth=',Depth_Press(nos_seg,no_depths(nos_seg)) print *,'etc=',nos_seg,no_depths(nos_seg),bell c print *,'enter ' c read(*,'(a)')a dd=Depth_Press(nos_seg,no_depths(nos_seg)) print * ,'dd=',dd,Depth_Press(nos_seg,no_depths(nos_seg)) print *,'enter ' goto 112 endif endif dd=dd*1.0336 112 if(dd.gt.1000.)then write(Deep_Depth(j),'(f5.0)')dd else write(Deep_Depth(j),'(f5.1)')dd endif enddo do j=1,num_hists read(Aux_ID(j),'(f8.2)')dd dd=dd*1.0336 write(Aux_ID(j),'(f8.2)')dd enddo num_hists=num_hists+1 Act_Code(num_hists)='DP' Ident_Code(num_hists)= 'CS' PRC_Code(num_hists)='CSCB' Version(num_hists)='1.0' PRC_Date(num_hists)=up_date Act_Parm(num_hists)='DEPH' Aux_ID(num_hists)='0.0000 ' Previous_Val(num_hists)='999.999 ' SRFC_Parm(i)(3:3)='2' SRFC_Code(nk+1)='DPC$' SRFC_Parm(nk+1)='04 ' SRFC_Q_Parm(nk+1)='2' nk=nk+1 SRFC_Code(nk+1)='FRA$' SRFC_Parm(nk+1)='1.0336 ' SRFC_Q_Parm(nk+1)=' ' nk=nk+1 do k=i,nk if(SRFC_Parm(k).eq.'PEQ$')then SRFC_Code(k)(3:3)='2' endif enddo goto 999 endif endif enddo c those were the ones where you knew the fall rate and probe type c now we look at the ones where you only know the probe type... do k=1,nk if(SRFC_Code(k).eq.'PRT$')then if(index(SRFC_Parm(k),'-07').ne.0 .or. 1 index(SRFC_Parm(k),'-04').ne.0 .or. 2 index(SRFC_Parm(k),'-06').ne.0 .or. 3 index(SRFC_Parm(k),'DB').ne.0)then do j=1,nos_seg do kk=1,no_depths(j) Depth_Press(j,kk)=Depth_Press(j,kk)*1.0336 enddo read(Deep_Depth(j),'(f5.1)',iostat=ios)dd print *,'dd at error=',dd,Deep_Depth(j),j,nos_seg c print *,'enter ' c read(*,'(a)')a if(Deep_Depth(j).eq.'*****')then print *,'depth=',Depth_Press(nos_seg,no_depths(nos_seg)) print *,'etc=',nos_seg,no_depths(nos_seg),bell c print *,'enter ' c read(*,'(a)')a dd=Depth_Press(nos_seg,no_depths(nos_seg)) print * ,'dd=',dd,Depth_Press(nos_seg,no_depths(nos_seg)) print *,'enter ' read(*,'(a)')a goto 113 endif dd=dd*1.0336 113 if(dd.gt.1000.)then write(Deep_Depth(j),'(f5.0)')dd else write(Deep_Depth(j),'(f5.1)')dd endif enddo do j=1,num_hists read(Aux_ID(j),'(f8.2)')dd dd=dd*1.0336 write(Aux_ID(j),'(f8.2)')dd enddo num_hists=num_hists+1 Act_Code(num_hists)='DP' Ident_Code(num_hists)= 'CS' PRC_Code(num_hists)='CSCB' Version(num_hists)='1.0' PRC_Date(num_hists)=up_date Act_Parm(num_hists)='DEPH' Aux_ID(num_hists)='0.0000 ' Previous_Val(num_hists)='999.999 ' SRFC_Code(nk+1)='DPC$' SRFC_Parm(nk+1)='04 ' SRFC_Q_Parm(nk+1)='2' nk=nk+1 SRFC_Code(nk+1)='FRA$' SRFC_Parm(nk+1)='1.0336 ' SRFC_Q_Parm(nk+1)=' ' nk=nk+1 goto 999 endif endif enddo 333 continue goto 88 999 continue Nsurfc=nk return 88 do j=1,no_prof if(profile_type(j).eq.'TEMP')then maxd=Depth_Press(j,No_Depths(j)) endif enddo if(maxd.gt.950.)return !don't depth correct... if(Data_Type.eq.'XB' .or. (Data_Type .eq.'BA'))then Nsurfc=Nsurfc+1 SRFC_Code(Nsurfc)=' ' SRFC_Parm(Nsurfc)=' ' SRFC_Q_Parm(Nsurfc)=' ' do j=1,nos_seg read(Deep_Depth(j),'(f5.5)',iostat=ios)dd if(ios.ne.0)then print *,'deep depth2=',Deep_Depth(j),j,dd dd=Depth_Press(j,no_depths(j)) print *,'dd=',dd endif print *,'dd=',dd,Deep_Depth(j),Data_Type if(dd.gt.950.)then print *,'Not depth correcting! Too deep...' return endif do k=1,no_depths(j) Depth_Press(j,k)=Depth_Press(j,k)*1.0336 enddo read(Deep_Depth(j),'(f5.5)',iostat=ios)dd if(ios.ne.0)then print *,'deep depth3=',Deep_Depth(j),j,dd dd=Depth_Press(j,no_depths(j)) print *,'dd=',dd endif dd=dd*1.0336 if(dd.gt.1000.)then write(Deep_Depth(j),'(f5.0)')dd else write(Deep_Depth(j),'(f5.1)')dd endif enddo do j=1,num_hists if(Ident_Code(j).eq.'CS')then read(Aux_ID(j),'(f8.2)')dd dd=dd*1.0336 write(Aux_ID(j),'(f8.2)')dd endif enddo num_hists=num_hists+1 Act_Code(num_hists)='DP' Ident_Code(num_hists)= 'CS' PRC_Code(num_hists)='CSCB' Version(num_hists)='1.0' PRC_Date(num_hists)=up_date Act_Parm(num_hists)='DEPH' Aux_ID(num_hists)='0.0000 ' Previous_Val(num_hists)='999.999 ' SRFC_Code(nk+1)='DPC$' SRFC_Parm(nk+1)='04 ' SRFC_Q_Parm(nk+1)='2' nk=nk+1 SRFC_Code(nk+1)='FRA$' SRFC_Parm(nk+1)='1.0336 ' SRFC_Q_Parm(nk+1)=' ' nk=nk+1 return endif Nsurfc=nk return end