From dab28ea63446c8350e42cdb49cadb5032210a440 Mon Sep 17 00:00:00 2001 From: ForestApps Date: Mon, 3 Jun 2024 14:46:15 +0800 Subject: [PATCH] Correct the scaling of motion, added mass and damping coefficinets in Wamit outpt files --- SourceCode/PotentWavForce.f90 | 37 ++++++++++++++++++++++++++--------- SourceCode/SolveMotion.f90 | 8 ++++---- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/SourceCode/PotentWavForce.f90 b/SourceCode/PotentWavForce.f90 index 78e54ba..dc96044 100644 --- a/SourceCode/PotentWavForce.f90 +++ b/SourceCode/PotentWavForce.f90 @@ -51,6 +51,7 @@ SUBROUTINE EFORCE(WK,W1,TP,BETA,AMP,EXFC) REAL*8:: XP,YP,ZP,AMFJ(6) REAL*8:: MOD,PHS(6),REL,IMG,NREL,NIMG COMPLEX*16 PHI,FORCE(6,4) + INTEGER M MD=7 FORCE=CMPLX(0.0D0, 0.0D0) @@ -107,16 +108,23 @@ SUBROUTINE EFORCE(WK,W1,TP,BETA,AMP,EXFC) AMFJ(:)=ABS(EXFC(:)) DO MD=1,6 - - REL=REAL(EXFC(MD))/(RHO*G*AMP) - IMG=IMAG(EXFC(MD))/(RHO*G*AMP) - MOD=ABS(EXFC(MD))/(RHO*G*AMP) !SQRT(REL**2+MDMG**2) + + IF(MD.LE.3)THEN + M=2 + ELSE + M=3 + ENDIF + + REL=REAL(EXFC(MD))/(RHO*G*AMP*REFL**M) + IMG=IMAG(EXFC(MD))/(RHO*G*AMP*REFL**M) + MOD=ABS(EXFC(MD))/(RHO*G*AMP*REFL**M) !SQRT(REL**2+MDMG**2) NREL=-IMG - NIMG=-REL - PHS(MD)=ATAN2(NIMG,NREL)*180.0D0/PI + NIMG= REL + PHS(MD)=ATAN2D(NIMG,NREL) WRITE(20+MD,1010) WK,W1,REAL(EXFC(MD)),IMAG(EXFC(MD)) IF (ABS(TP+1.D0).GT.1.E-6.AND.ABS(TP).GT.1.E-6) THEN + WRITE(62,1030) OUFR,BETA*180.0D0/PI,MD,MOD,PHS(MD),NREL,NIMG ENDIF @@ -142,7 +150,8 @@ SUBROUTINE RFORCE(WK,W1,TP,AMAS,BDMP) INTEGER IEL,MD,MD1,MD2,IP REAL*8:: AMFJ(6),NAMAS(6,6),NBDMP(6,6) COMPLEX*16 RPHI,IPHI - + INTEGER K + AMAS(:,:)=0.D0 BDMP(:,:)=0.D0 @@ -203,10 +212,20 @@ SUBROUTINE RFORCE(WK,W1,TP,AMAS,BDMP) ! DO MD1=1,6 DO MD2=1,6 + + K = 3 + IF(MD1.LE.3.AND.MD2.LE.3)THEN + K = 3 + ELSEIF(MD1.GT.3.AND.MD2.GT.3)THEN + K = 5 + ELSE + K = 4 + ENDIF + IF (ABS(TP+1.D0).LT.1.E-6.OR.ABS(TP).LT.1.E-6) THEN - WRITE(61,1020) OUFR,MD1,MD2,AMAS(MD1,MD2)/RHO + WRITE(61,1020) OUFR,MD1,MD2,AMAS(MD1,MD2)/(RHO*REFL**K) ELSE - WRITE(61,1020) OUFR,MD1,MD2,AMAS(MD1,MD2)/RHO,BDMP(MD1,MD2)/(RHO*W1) + WRITE(61,1020) OUFR,MD1,MD2,AMAS(MD1,MD2)/(RHO*REFL**K),BDMP(MD1,MD2)/(RHO*REFL**K*W1) ENDIF ENDDO ENDDO diff --git a/SourceCode/SolveMotion.f90 b/SourceCode/SolveMotion.f90 index d0fb233..9edc23e 100644 --- a/SourceCode/SolveMotion.f90 +++ b/SourceCode/SolveMotion.f90 @@ -86,12 +86,12 @@ SUBROUTINE SolveMotion(W1,TP,OUFR,BETA,AMP,AMAS,BDMP,& DO MD=1,6 IF (MD.LE.3) THEN - MEXP=2 + MEXP=0 ELSEIF (MD.GE.4) THEN - MEXP=3 + MEXP=1 ENDIF - NFAC=(RHO*G*AMP)*REFL**MEXP + NFAC=AMP/REFL**MEXP !print*,'NFAC',(RHO*G*AMP),REFL,MEXP !pause @@ -101,7 +101,7 @@ SUBROUTINE SolveMotion(W1,TP,OUFR,BETA,AMP,AMAS,BDMP,& MOD=SQRT(REL**2+IMG**2) !ABS(EXFC(IMD))/NFAC NREL= REL NIMG=-IMG - PHS=ATAN2(NIMG,NREL)*180.0D0/PI + PHS=ATAN2D(NIMG,NREL) IF (ABS(TP+1.D0).GT.1.E-6.AND.ABS(TP).GT.1.E-6) THEN WRITE(63,1030) OUFR,BETA*180.0D0/PI,MD,MOD,PHS,NREL,NIMG