diff --git a/compile2.sh b/compile2.sh
index b6966b86a84787045b697ffc2d8621c5353e8a8b..e1433f88e7ddfcdc6627204ad266a985b7e85a89 100644
--- a/compile2.sh
+++ b/compile2.sh
@@ -6,5 +6,5 @@ gfortran -c param.f90
 gfortran -c prmt.f90
 gfortran -c drag3.f90
 gfortran -c main_drag.f90
-gfortran -o drag_ddt.exe main_drag.o drag3.o  inputdata.o param.o prmt.o 
+gfortran -o drag_ddt.exe main_drag.o drag3.o  inputdata.o param.o 
 
diff --git a/drag3.f90 b/drag3.f90
index 860abae30aa7368ccfe81c9fab1175f0c27fa156..039a999c735642db86d2f47cbcd2b1711d7b5715 100644
--- a/drag3.f90
+++ b/drag3.f90
@@ -1,224 +1,223 @@
-    module DRAG3
+        MODULE drag3
    
-      USE PRMT
-      USE PARAM
-      USE INPUTDATA
+      USE param
+      USE inputdata
      
-    !implicit real (A-H, O-Z)
+    !implicit real (a-h, o-z)
     implicit none
-      type, public:: DATA_IN
-	real, public:: WS, DT, ST, DQ, CFLH, Z0IN
+      type, public:: data_in
+	real, public:: ws, dt, st, dq, cflh, z0in
     end type
 	
-    type, public:: DATA_OUTDEF
-	real, public:: ZL, RI, RE, LNZUZT, ZU, ZTOUT, RITH, CM, CH, CT, CKT
+    type, public:: data_outdef
+	real, public:: zl, ri, re, lnzuzt, zu, ztout, rith, cm, ch, ct, ckt
     end type
 	
-    type, public:: DATA_PAR
-	integer, public :: IT=10
+    type, public:: data_par
+	integer, public :: it=10
 	end type
  
 
 	contains
     
-	subroutine  surf_flux(in, out, par)
-    type (DATA_IN) , intent(in) :: in
-    type (DATA_OUTDEF) out   
-    type (DATA_PAR) par 
+	SUBROUTINE  surf_flux(in, out, par)
+    type (data_in) , intent(in) :: in
+    type (data_outdef) out   
+    type (data_par) par 
 
-    real WS, DT, ST, DQ, CFLH, Z0IN
-	integer IT
-    real ZL, RI, RE, LNZUZT, ZU, ZTIN, RI_TH, CM, CH, CT, CKT
-    real Z0, D3, D0MAX, U1, A1, Y1, CIMIN, H1, AP0, F, A2, C1, U2, H0, U3, X7, X8, AN1, AN2, D0, D00, ZT, H00, FT0, AN4, AN5
-    real AL, AL2, AN, G, T1, R6, Q4, T4, U, G0, R1, F0, F4, A0, AM, O, DD, X1, Y0, X0, Z3, Y10, A2CH, X10, P1, P0, H, D1, F1
-    real D, C4, C1MIN, C0, C, B1, AN0
+    real ws, dt, st, dq, cflh, z0in
+	integer it
+    real zl, ri, re, lnzuzt, zu, ztin, ri_th, cm, ch, ct, ckt
+    real z0, d3, d0max, u1, a1, y1, cimin, h1, ap0, f, a2, c1, u2, h0, u3, x7, x8, an1, an2, d0, d00, zt, h00, ft0, an4, an5
+    real al, al2, an, g, t1, r6, q4, t4, u, g0, r1, f0, f4, a0, am, o, dd, x1, y0, x0, z3, y10, a2ch, x10, p1, p0, h, d1, f1
+    real d, c4, c1min, c0, c, b1, an0
     integer i, j, m
-    WS=in%WS
-    DT=in%DT
-    ST=in%ST
-    DQ=in%DQ
-    CFLH=in%CFLH
-    Z0IN=in%Z0IN	
-    IT=par%IT
+    ws=in%ws
+    dt=in%dt
+    st=in%st
+    dq=in%dq
+    cflh=in%cflh
+    z0in=in%z0in	
+    it=par%it
 	
-    U=WS
-    T4=DT
-    T1=ST
-    Q4=DQ
-    H=CFLH
-    Z0=Z0IN
+    u=ws
+    t4=dt
+    t1=st
+    q4=dq
+    h=cflh
+    z0=z0in
     
-	  D3=0.0E0
-      D0MAX=2.0E0
-      !=DATA_IN%WS
-      !4=DATA_IN%DT
-      !4=DATA_IN%DQ
-      !=DATA_IN%CFLH
-      !0=DATA_IN%Z0
-      IF(Z0.LT.0.0E0) D0MAX=8.0E0
-      IF(Z0.LT.0.0E0) THEN
-!     ......DEFINITION Z0 OF SEA SURFACE......
- !call Z0SEA module (RAMIL_DASHA)
-                 !U1=U
-      !A1=0.0E0
-      !Y1=25.0E0
-      !C1MIN=ALOG(H1/1.0E0)/AP0
-      !DO 630 I=1,IT
-      !F=A2-2.0E0*ALOG(U1)
-      !DO 570 J=1,IT
-      !C1=(F+2.0E0*ALOG(Y1))/AP0
-      !IF(U.LE.8.0E0) A1=ALOG(1.0E0+A3*((Y1/U1)**3))/AP0
-      !C1=C1-A1
-      !C1=AMAX1(C1,C1MIN)
-      !Y1=C1
-  !570 CONTINUE
-   !   Z0=H1*EXP(-C1*AP0)
-   !   Z0=AMAX1(Z0,0.000015E0)
-   !   U2=U*ALOG(H1/Z0)/(ALOG(H/Z0))
-   !   U1=U2
-  !630 CONTINUE
-   !   J=1
-   !   H0=H/Z0
-   !   U3=U1/C1
-    !  ELSE
-!     ......PARAMETERS FROM VISCOSITY SUBLAYER......
-    !  J=0
-    !  H0=H/Z0
-    !  U3=U*AP0/ALOG(H0)
+	  d3=0.0e0
+      d0max=2.0e0
+      !=data_in%ws
+      !4=data_in%dt
+      !4=data_in%dq
+      !=data_in%cflh
+      !0=data_in%z0
+      if(z0.lt.0.0e0) d0max=8.0e0
+      if(z0.lt.0.0e0) then
+!     ......definition z0 of sea surface......
+ !call z0sea module (ramil_dasha)
+                 !u1=u
+      !a1=0.0e0
+      !y1=25.0e0
+      !c1min=alog(h1/1.0e0)/ap0
+      !do 630 i=1,it
+      !f=a2-2.0e0*alog(u1)
+      !do 570 j=1,it
+      !c1=(f+2.0e0*alog(y1))/ap0
+      !if(u.le.8.0e0) a1=alog(1.0e0+a3*((y1/u1)**3))/ap0
+      !c1=c1-a1
+      !c1=amax1(c1,c1min)
+      !y1=c1
+  !570 continue
+   !   z0=h1*exp(-c1*ap0)
+   !   z0=amax1(z0,0.000015e0)
+   !   u2=u*alog(h1/z0)/(alog(h/z0))
+   !   u1=u2
+  !630 continue
+   !   j=1
+   !   h0=h/z0
+   !   u3=u1/c1
+    !  else
+!     ......parameters from viscosity sublayer......
+    !  j=0
+    !  h0=h/z0
+    !  u3=u*ap0/alog(h0)
     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-      END IF
-      X7=U3*Z0/AN
-      IF(X7.LE.X8) THEN
-      D0=AN1*ALOG(AL1*X7)+AN2
-      ELSE
-      D0=AL2*(X7**0.45E0)
-      END IF
-!     ......HUMIDITY STRATIFICATION AND RI-NUMBER......     
-      ST=in%ST
-      AL=G/T1
-      D0=AMIN1(D0,D0MAX)
-      R6=AL*H*(T4+0.61E0*T1*Q4)/U**2
-      D00=D0
-      ZT=Z0/EXP(D00)
-      H00=H/ZT
-      FT0=ALOG(H00)
-!     ......DEFINITION OF R-PRIM......
-      AN4=D1/H0
-      AN5=D1/H00
-!C     IF(D0.EQ.0.0E0) AN5=AN4
-      IF (ABS(D0).LT.1.0E-10) AN5=AN4
-      AN5=SQRT(1.0E0-G0*AN5)
-      AN4=(1.0E0-G4*AN4)**0.25E0
-      F0=ALOG((X10-1.0E0)*(AN5+1.0E0)/((X10+1.0E0)*(AN5-1.0E0)))/A0
-      F4=2.0E0*(ATAN(Y10)-ATAN(AN4))+ALOG((Y10-1.0E0)*(AN4+1.0E0)/((Y10+1.0E0)*(AN4-1.0E0)))
-      R1=D1*F0/(F4*F4)
-!     ......DEFINITION OF DZ,TA,FU,FO,FIU,FIO......
-      IF(R6.GT.0.0E0) GO TO 1460
-      IF(R6.LT.R1) GO TO 1305
-      IF(R6.GT.-0.001E0) THEN
-!     ......NEARLY NEUTRAL......
-      write (*,*) 'NEUTRAL'
-      F4=ALOG(H0)
-      F0=FT0/A0
-!     IF(D0.EQ.0.0E0) F0=F4/A0
-      IF (ABS(D0).LT.1.0E-10) F0=F4/A0
-      AM=1.0E0
-      O=1.0E0/A0
-      GO TO 1570
-      ELSE
-!     ......WEEK AND SEMISTRONG INSTABILITY......
-      write (*,*) 'SEMISTRONG'
-      F1=ALOG(H0)
-!     IF(D0.EQ.0.0E0)FT0=F1
-      IF (ABS(D0).LT.1.0E-10) FT0=F1
-      D3=R6*A0*F1**2/FT0
-      M=1
- 1245 DO 1300 I=1,IT
-      D=D3/H0
-      DD=D3/H00
-!     IF(D0.EQ.0.0E0)DD=D
-      IF (ABS(D0).LT.1.0E-10) DD=D
-      Y1=(1.0E0-G4*D3)**0.25E0
-      X1=SQRT(1.0E0-G0*D3)
-      Y0=(1.0E0-G4*D)**0.25E0
-      X0=SQRT(1.0E0-G0*DD)
-      Y0=AMAX1(Y0,1.000001E0)
-      X0=AMAX1(X0,1.000001E0)
-      F4=ALOG((Y1-1.0E0)*(Y0+1.0E0)/((Y1+1.0E0)*(Y0-1.0E0)))+2.0E0*(ATAN(Y1)-ATAN(Y0))
-      F0=ALOG((X1-1.0E0)*(X0+1.0E0)/((X1+1.0E0)*(X0-1.0E0)))/A0
-      IF(M.NE.1) GO TO 1350
-      Z3=R6*F4**2/F0
-      D3=Z3
- 1300 CONTINUE
-      M=2
-      GO TO 1245
- 1350 AM=(1.0E0-G4*D3)**(-0.25E0)
-      O=1.0E0/(A0*SQRT(1.0E0-G0*D3))
-      GO TO 1570
-      END IF
-!     ......STRONG INSTABILITY.....
- 1305 CONTINUE
-      write (*,*) 'INSTABILITY'
-      D3=D1
-      M=1
- 1355 DO 1410 I=1,IT
-      D=D3/H0
-      DD=D3/H00
-!     IF(D0.EQ.0.0E0)DD=D
-      IF (ABS(D0).LT.1.0E-10) DD=D
-      A1=(D1/D3)**(1.0E0/3.0E0)
-      X0=SQRT(1.0E0-G0*DD)
-      Y0=(1.0E0-G4*D)**0.25E0
-      C=ALOG((X0+1.0E0)/(X0-1.0E0))
-      B1=-2.0E0*ATAN(Y0)+ALOG((Y0+1.0E0)/(Y0-1.0E0))
-      F=3.0E0*(1.0E0-A1)
-      F4=F/Y10+P1+B1
-      F0=(F/X10+P0+C)/A0
-      IF(M.NE.1) GO TO 1430
-      Z3=R6*F4**2/F0
-      D3=Z3
- 1410 CONTINUE
-      M=2
-      GO TO 1355
- 1430 AM=A1/Y10
-      O=A1/(A0*X10)
-      GO TO 1570
-!     ......STABLE STRATIFICATION......
- 1460 CONTINUE
-      write (*,*) 'STABLE'
-      R6=AMIN1(R6,R0)
-      F=ALOG(H0)
-      F1=D0/F
-      A1=B4*R6
-      A2CH=(F1+1.0E0)/A0-2.0E0*A1
-      D3=F*(SQRT(A2CH**2+4.0E0*A1*(1.0E0-A1))-A2CH)/(2.0E0*B4*(1.0E0-A1))
-      F1=B4*D3
-      F4=F+F1
-      F0=(F+D0)/A0+F1
-      O=1.0E0/A0+F1
-      AM=1.0E0+F1
- 1570 CONTINUE
-!     ......COMPUTATION OF CU,CO,K(H),ALFT
-      C4=AP0/F4
-      C0=AP0/F0
-      AN4=AP0*C4*U*H/AM
-      AN0=AM/O
-!     ......EXIT......
-  140 CONTINUE
-      out%ZL=D3
-      out%RI=R6
-      out%RE=X7
-      out%LNZUZT=D00
-      out%ZU=Z0
-      out%ZTOUT=ZT
-      out%RITH=R1
-      out%CM=C4
-      out%CH=C0
-      out%CT=AN4
-      out%CKT=AN0
+      end if
+      x7=u3*z0/an
+      if(x7.le.x8) then
+      d0=an1*alog(al1*x7)+an2
+      else
+      d0=al2*(x7**0.45e0)
+      end if
+!     ......humidity stratification and ri-number......     
+      st=in%st
+      al=g/t1
+      d0=amin1(d0,d0max)
+      r6=al*h*(t4+0.61e0*t1*q4)/u**2
+      d00=d0
+      zt=z0/exp(d00)
+      h00=h/zt
+      ft0=alog(h00)
+!     ......definition of r-prim......
+      an4=d1/h0
+      an5=d1/h00
+!c     if(d0.eq.0.0e0) an5=an4
+      if (abs(d0).lt.1.0e-10) an5=an4
+      an5=sqrt(1.0e0-g0*an5)
+      an4=(1.0e0-g4*an4)**0.25e0
+      f0=alog((x10-1.0e0)*(an5+1.0e0)/((x10+1.0e0)*(an5-1.0e0)))/a0
+      f4=2.0e0*(atan(y10)-atan(an4))+alog((y10-1.0e0)*(an4+1.0e0)/((y10+1.0e0)*(an4-1.0e0)))
+      r1=d1*f0/(f4*f4)
+!     ......definition of dz,ta,fu,fo,fiu,fio......
+      if(r6.gt.0.0e0) go to 1460
+      if(r6.lt.r1) go to 1305
+      if(r6.gt.-0.001e0) then
+!     ......nearly neutral......
+      write (*,*) 'neutral'
+      f4=alog(h0)
+      f0=ft0/a0
+!     if(d0.eq.0.0e0) f0=f4/a0
+      if (abs(d0).lt.1.0e-10) f0=f4/a0
+      am=1.0e0
+      o=1.0e0/a0
+      go to 1570
+      else
+!     ......week and semistrong instability......
+      write (*,*) 'semistrong'
+      f1=alog(h0)
+!     if(d0.eq.0.0e0)ft0=f1
+      if (abs(d0).lt.1.0e-10) ft0=f1
+      d3=r6*a0*f1**2/ft0
+      m=1
+ 1245 do 1300 i=1,it
+      d=d3/h0
+      dd=d3/h00
+!     if(d0.eq.0.0e0)dd=d
+      if (abs(d0).lt.1.0e-10) dd=d
+      y1=(1.0e0-g4*d3)**0.25e0
+      x1=sqrt(1.0e0-g0*d3)
+      y0=(1.0e0-g4*d)**0.25e0
+      x0=sqrt(1.0e0-g0*dd)
+      y0=amax1(y0,1.000001e0)
+      x0=amax1(x0,1.000001e0)
+      f4=alog((y1-1.0e0)*(y0+1.0e0)/((y1+1.0e0)*(y0-1.0e0)))+2.0e0*(atan(y1)-atan(y0))
+      f0=alog((x1-1.0e0)*(x0+1.0e0)/((x1+1.0e0)*(x0-1.0e0)))/a0
+      if(m.ne.1) go to 1350
+      z3=r6*f4**2/f0
+      d3=z3
+ 1300 continue
+      m=2
+      go to 1245
+ 1350 am=(1.0e0-g4*d3)**(-0.25e0)
+      o=1.0e0/(a0*sqrt(1.0e0-g0*d3))
+      go to 1570
+      end if
+!     ......strong instability.....
+ 1305 continue
+      write (*,*) 'instability'
+      d3=d1
+      m=1
+ 1355 do 1410 i=1,it
+      d=d3/h0
+      dd=d3/h00
+!     if(d0.eq.0.0e0)dd=d
+      if (abs(d0).lt.1.0e-10) dd=d
+      a1=(d1/d3)**(1.0e0/3.0e0)
+      x0=sqrt(1.0e0-g0*dd)
+      y0=(1.0e0-g4*d)**0.25e0
+      c=alog((x0+1.0e0)/(x0-1.0e0))
+      b1=-2.0e0*atan(y0)+alog((y0+1.0e0)/(y0-1.0e0))
+      f=3.0e0*(1.0e0-a1)
+      f4=f/y10+p1+b1
+      f0=(f/x10+p0+c)/a0
+      if(m.ne.1) go to 1430
+      z3=r6*f4**2/f0
+      d3=z3
+ 1410 continue
+      m=2
+      go to 1355
+ 1430 am=a1/y10
+      o=a1/(a0*x10)
+      go to 1570
+!     ......stable stratification......
+ 1460 continue
+      write (*,*) 'stable'
+      r6=amin1(r6,r0)
+      f=alog(h0)
+      f1=d0/f
+      a1=b4*r6
+      a2ch=(f1+1.0e0)/a0-2.0e0*a1
+      d3=f*(sqrt(a2ch**2+4.0e0*a1*(1.0e0-a1))-a2ch)/(2.0e0*b4*(1.0e0-a1))
+      f1=b4*d3
+      f4=f+f1
+      f0=(f+d0)/a0+f1
+      o=1.0e0/a0+f1
+      am=1.0e0+f1
+ 1570 continue
+!     ......computation of cu,co,k(h),alft
+      c4=ap0/f4
+      c0=ap0/f0
+      an4=ap0*c4*u*h/am
+      an0=am/o
+!     ......exit......
+  140 continue
+      out%zl=d3
+      out%ri=r6
+      out%re=x7
+      out%lnzuzt=d00
+      out%zu=z0
+      out%ztout=zt
+      out%rith=r1
+      out%cm=c4
+      out%ch=c0
+      out%ct=an4
+      out%ckt=an0
    
       
       
 	  return
-      end subroutine  surf_flux
-      end module DRAG3
\ No newline at end of file
+      END SUBROUTINE  surf_flux
+      END MODULE drag3
\ No newline at end of file
diff --git a/main_drag.f90 b/main_drag.f90
index 4e50962853889feedb19161265d4b49f9526bebb..6c809aff54932813bc9aa783c8e3c3ac0d0358bf 100644
--- a/main_drag.f90
+++ b/main_drag.f90
@@ -1,33 +1,33 @@
-program main_ddt
-    USE PRMT
-    USE PARAM
-    USE INPUTDATA
-	use DRAG3
+   PROGRAM main_ddt
+   
+    USE param
+    USE inputdata
+	USE drag3
 
-    type (DATA_IN):: DATA_IN1
+    type (data_in):: data_in1
        
-	type (DATA_OUTDEF) :: DATA_OUTDEF1
+	type (data_outdef) :: data_outdef1
 	
     
-	type (DATA_PAR) :: DATA_PAR1
+	type (data_par) :: data_par1
 
 	
-    OPEN (1,FILE='4_ddt.txt')
+    open (1,file='4_ddt.txt')
 	
-   DO I = 1,1000000
-   READ (1,*,END=100) DATA_IN1%WS,  DATA_IN1%DT       
+   do i = 1,1000000
+   read (1,*,end=100) data_in1%ws,  data_in1%dt       
    
      	
-	 call surf_flux(DATA_IN1, DATA_OUTDEF1, DATA_PAR1)
+	 CALL surf_flux(data_in1, data_outdef1, data_par1)
 
 
 
- ENDDO 
+ enddo 
 
-100 CONTINUE 
+100 continue 
 
-10 FORMAT (4I4,5F7.1,F7.4,F7.1)
-20 FORMAT (4I4,5F7.1,F7.4,F7.1)
+10 format (4i4,5f7.1,f7.4,f7.1)
+20 format (4i4,5f7.1,f7.4,f7.1)
 
 stop
-end program
+END PROGRAM
\ No newline at end of file
diff --git a/prmt.mod b/prmt.mod
new file mode 100644
index 0000000000000000000000000000000000000000..fbc5c106bbef1e8d13147a0421ec45fb0d9c8dd0
Binary files /dev/null and b/prmt.mod differ