i have try to write this programm but don´t work i become errors i have no idea please i need a help. i would like to calculate CD
#include "cfx5ext.h"
dllexport(drag_factor)
SUBROUTINE drag_factor (NLOC,NRET,NARG,RET,ARG,CRESLT,
& CZ,DZ,IZ,LZ,RZ)
CC
CC --------------------
CC Input
CC --------------------
CC
CC NRET - number of components in result
CC NARG - number of arguments in call
CC ARG() - (NARG) argument values
CC
CC --------------------
CC Modified
CC --------------------
CC
CC Stacks possibly.
CC
CC --------------------
CC Output
CC --------------------
CC
CC RET() - (NRET) return values
CC
CC --------------------
CC Details
CC --------------------
CC
CC======================================================================
C
C ------------------------------
C Preprocessor includes
C ------------------------------
C
C ------------------------------
C Global Parameters
C ------------------------------
C
C ------------------------------
C Argument list
C ------------------------------
C
INTEGER NLOC,NARG,NRET
C
REAL ARG(NLOC,NARG), RET(NLOC,NRET)
C
CHARACTER CRESLT*(*)
C
INTEGER IZ(*)
CHARACTER CZ(*)*(1)
DOUBLE PRECISION DZ(*)
LOGICAL LZ(*)
REAL RZ(*)
C
C ------------------------------
C External routines
C ------------------------------
C
C ------------------------------
C Local Parameters
C ------------------------------
C
C ------------------------------
C Local Variables
C ------------------------------
C
C ------------------------------
C Stack pointers
C ------------------------------
C
C=======================================================================
C
C ---------------------------
C Executable Statements
C ---------------------------
C
C=======================================================================
C
C Argument variables stack:
C -------------------------
C Particle Reynolds Number : RE_PT = ARG(1,1)
C Mean Particle Diameter : d_p = ARG(1,2)
C Turbulence Eddy Dissipation : psy = ARG(1,3)
C Dynamic Viscosity : ny = ARG(1,4)
C Density : rho = ARG(1,5)
C
C Return variables stack :
C -----------------------
C drag factor coefficient : CD = RET(1,1)
C
C=======================================================================
C
C-----------------------------------------------------------------------
C Calculate the momentum source and source term coefficient
C-----------------------------------------------------------------------
C
CALL USER_CD(RET(1,1),ARG(1,1),ARG(1,2),ARG(1,3),ARG(1,4),ARG(1,5))
END
C
SUBROUTINE USER_CD(CD,RE_PT,d_p,psy,ny,rho)
C
C=======================================================================
C Calculate the momentum source and source term coefficient
C=======================================================================
C
C ------------------------------
C Preprocessor includes
C ------------------------------
C
#include "cfd_sysdep.h"
#include "cfd_constants.h"
C
C ------------------------------
C Argument list
C ------------------------------
C
REAL CD, RE_PT, d_p, psy, ny, rho
C
C ------------------------------
C Local variables
C ------------------------------
C
REAL CD0, lambda
C
C------------------------------
C---- Calculate Brucato Model
C
IF (RE_PT .LT. 1.) THEN
CD0 = 22.73/RE_PT + 0.0903/RE_PT + 3.69
lambda = (((ny/rho)**3)/psy)**(1/4)
CD = CD0 + CD0*(0.000867*(d_p / lambda)**3)
ELSEIF ((RE_PT .LT. 10.).and.(RE_PT .GT. 1.)) THEN
CD0 = 29.167/RE_PT - 3.889/RE_PT + 1.222
lambda = (((ny/rho)**3)/psy)**(1/4)
CD = CD0 + CD0*(0.000867*(d_p / lambda)**3)
ELSEIF ((RE_PT .LT. 100.).and.(RE_PT .GT. 10.)) THEN
CD0 = 46.5/RE_PT - 116.67/RE_PT + 0.6167
lambda = (((ny/rho)**3)/psy)**(1/4)
CD = CD0 + CD0*(0.000867*(d_p / lambda)**3)
ELSEIF ((RE_PT .LT. 1000.).and.(RE_PT .GT. 100.)) THEN
CD0 = 98.33/RE_PT - 2778/RE_PT + 0.3644
lambda = (((ny/rho)**3)/psy)**(1/4)
CD = CD0 + CD0*(0.000867*(d_p / lambda)**3)
ELSEIF ((RE_PT .LT. 5000.).and.(RE_PT .GT. 1000.)) THEN
CD0 = 148.62/RE_PT - 47500/RE_PT + 0.357
lambda = (((ny/rho)**3)/psy)**(1/4)
CD = CD0 + CD0*(0.000867*(d_p / lambda)**3)
ELSEIF ((RE_PT .GT. 5000.) THEN
CD0 = - 490.546/RE_PT + 578700/RE_PT + 0.46
lambda = (((ny/rho)**3)/psy)**(1/4)
CD = CD0 + CD0*(0.000867*(d_p / lambda)**3)
END IF
C
END