@@ -498,12 +498,19 @@ SUBROUTINE W3SRCE ( srce_call, IT, ISEA, JSEA, IX, IY, IMOD, &
498498 srce_direct, GRAV, TPI, TPIINV
499499 USE W3GDATMD, ONLY: NK, NTH, NSPEC, SIG, TH, DMIN, DTMAX, &
500500 DTMIN, FACTI1, FACTI2, FACSD, FACHFA, FACP, &
501- XFC, XFLT, XREL, XFT , FXFM, FXPM, DDEN, &
502- FTE, FTF, FHMAX, ECOS, ESIN, IICEDISP, &
501+ XFLT, XREL, FXFM, FXPM, DDEN, &
502+ FHMAX, ECOS, ESIN, IICEDISP, &
503503 ICESCALES, IICESMOOTH
504504 USE W3GDATMD, ONLY: IC_NUMERICS
505+ #if defined(W3_NL5) || defined(W3_NNT)
505506 USE W3WDATMD, ONLY: TIME
506- USE W3ODATMD, ONLY: NDSE, NDST, IAPROC
507+ #endif
508+ #if defined(W3_T) || defined(W3_ST1) || defined(W3_ST2) || defined(W3_ST3) || defined(W3_ST6)
509+ USE W3ODATMD, ONLY: NDST
510+ #endif
511+ #if defined(W3_NNT) || defined(W3_PDLIB) || defined(W3_DEBUGSRC)
512+ USE W3ODATMD, ONLY: IAPROC
513+ #endif
507514 USE W3IDATMD, ONLY: INFLAGS2
508515 USE W3DISPMD
509516#ifdef W3_T
@@ -513,7 +520,7 @@ SUBROUTINE W3SRCE ( srce_call, IT, ISEA, JSEA, IX, IY, IMOD, &
513520 USE W3GDATMD, ONLY: IOBP, IOBPD, GTYPE, UNGTYPE, REFPARS
514521#endif
515522#ifdef W3_NNT
516- USE W3ODATMD, ONLY: IAPROC, SCREEN, FNMPRE
523+ USE W3ODATMD, ONLY: SCREEN, FNMPRE
517524#endif
518525#ifdef W3_FLD1
519526 USE W3FLD1MD, ONLY: W3FLD1
@@ -549,7 +556,7 @@ SUBROUTINE W3SRCE ( srce_call, IT, ISEA, JSEA, IX, IY, IMOD, &
549556#endif
550557#ifdef W3_ST2
551558 USE W3SRC2MD
552- USE W3GDATMD, ONLY : ZWIND
559+ USE W3GDATMD, ONLY : ZWIND, XFC, XFT
553560#endif
554561#ifdef W3_ST3
555562 USE W3SRC3MD
@@ -638,6 +645,7 @@ SUBROUTINE W3SRCE ( srce_call, IT, ISEA, JSEA, IX, IY, IMOD, &
638645#endif
639646#ifdef W3_NNT
640647 USE W3SERVMD, ONLY: EXTOPN, EXTIOF
648+ USE W3ODATMD, ONLY: NDSE
641649#endif
642650#ifdef W3_UOST
643651 USE W3UOSTMD, ONLY: UOST_SRCTRMCOMPUTE
@@ -684,46 +692,56 @@ SUBROUTINE W3SRCE ( srce_call, IT, ISEA, JSEA, IX, IY, IMOD, &
684692 ! / Local parameters
685693 ! /
686694 INTEGER :: IK, ITH, IS, IS0, NSTEPS, NKH, NKH1, &
687- IKS1, IS1, NSPECH, IDT, IERR, ISP
695+ IKS1, IS1, NSPECH, IDT
688696 REAL :: DTTOT, FHIGH, DT, AFILT, DAMAX, AFAC, &
689- HDT, ZWND, FP, DEPTH, TAUSCX, TAUSCY, FHIGI
697+ HDT, ZWND, DEPTH, TAUSCX, TAUSCY, FHIGI
690698 ! Scaling factor for SIN, SDS, SNL
691699 REAL :: ICESCALELN, ICESCALEIN, ICESCALENL, ICESCALEDS
692- REAL :: EMEAN, FMEAN, AMAX, CD, Z0, SCAT, &
693- SMOOTH_ICEDISP
700+ REAL :: EMEAN, FMEAN, AMAX, CD, Z0
694701 REAL :: WN_R(NK), CG_ICE(NK), ALPHA_LIU(NK), ICECOEF2, R(NK)
695- DOUBLE PRECISION :: ATT, ISO
702+ DOUBLE PRECISION :: ATT
696703 REAL :: EBAND, DIFF, EFINISH, HSTOT, PHINL, &
697704 FMEAN1, FMEANWS, &
698705 FACTOR, FACTOR2, DRAT, TAUWAX, TAUWAY, &
699706 MWXFINISH, MWYFINISH, A1BAND, B1BAND, &
700707 COSI(2 )
701- REAL :: SPECINIT(NSPEC), SPEC2(NSPEC), FRLOCAL, JAC2
702- REAL :: DAM (NSPEC), DAM2(NSPEC), WN2(NSPEC), &
708+ REAL :: SPECINIT(NSPEC), SPEC2(NSPEC)
709+ REAL :: DAM (NSPEC), WN2(NSPEC), &
703710 VSLN(NSPEC), &
704711 VSIN(NSPEC), VDIN(NSPEC), &
705712 VSNL(NSPEC), VDNL(NSPEC), &
706713 VSDS(NSPEC), VDDS(NSPEC), &
707714 VSBT(NSPEC), VDBT(NSPEC)
708- REAL :: VS(NSPEC), VD(NSPEC), EB(NK)
715+ REAL :: VS(NSPEC), VD(NSPEC)
709716
710717 LOGICAL :: SHAVE
711718 LOGICAL :: LBREAK
712719 LOGICAL , SAVE :: FIRST = .TRUE.
713- LOGICAL :: PrintDeltaSmDA
714- REAL :: eInc1, eInc2, eVS, eVD, JAC
715- REAL :: DeltaSRC(NSPEC)
720+ REAL :: eInc1, eInc2
716721
717- REAL :: FOUT(NK,NTH), SOUT(NK,NTH), DOUT(NK,NTH)
718722 REAL , SAVE :: TAUNUX, TAUNUY
719- LOGICAL , SAVE :: FLTEST = .FALSE. , FLAGNN = .TRUE.
723+
724+ #if defined(W3_OMPG) || defined(W3_T) || defined(W3_ST1) || defined(W3_ST2) || defined(W3_ST3) || defined(W3_ST6)
725+ LOGICAL , SAVE :: FLTEST = .FALSE.
726+ #endif
727+
728+ #if defined(W3_OMPG) || defined(W3_NNT)
729+ LOGICAL , SAVE :: FLAGNN = .TRUE.
730+ #endif
720731
721732#ifdef W3_OMPG
722733 ! $omp threadprivate( TAUNUX, TAUNUY)
723734 ! $omp threadprivate( FLTEST, FLAGNN )
724735 ! $omp threadprivate( FIRST )
725736#endif
726737
738+ #if defined(W3_PDLIB) || defined(W3_REF1)
739+ INTEGER :: ISP
740+ #endif
741+
742+ #if defined(W3_ST0) || defined(W3_ST1) || defined(W3_ST2) || defined(W3_ST6) || defined(W3_FLX2) || defined(W3_FLX3)
743+ REAL :: FP
744+ #endif
727745 ! /
728746 ! / ------------------------------------------------------------------- /
729747 ! / Local parameters dependent on compile switch
@@ -735,6 +753,9 @@ SUBROUTINE W3SRCE ( srce_call, IT, ISEA, JSEA, IX, IY, IMOD, &
735753#ifdef W3_NNT
736754 INTEGER , SAVE :: NDSD = 89 , NDSD2 = 88 , J
737755 REAL :: QCERR = 0 . ! /XNL2 and !/NNT
756+ INTEGER :: IERR
757+ REAL :: FOUT(NK,NTH), SOUT(NK,NTH), DOUT(NK,NTH)
758+ LOGICAL , SAVE :: FLAGNN = .TRUE.
738759#endif
739760
740761#ifdef W3_NL5
@@ -786,7 +807,9 @@ SUBROUTINE W3SRCE ( srce_call, IT, ISEA, JSEA, IX, IY, IMOD, &
786807
787808#ifdef W3_IS2
788809 REAL :: VDIR2(NSPEC)
810+ REAL :: SCAT, SMOOTH_ICEDISP
789811 DOUBLE PRECISION :: SCATSPEC(NTH)
812+ DOUBLE PRECISION :: ISO
790813#endif
791814
792815#ifdef W3_UOST
@@ -806,7 +829,7 @@ SUBROUTINE W3SRCE ( srce_call, IT, ISEA, JSEA, IX, IY, IMOD, &
806829#endif
807830
808831#ifdef W3_ST4
809- REAL :: FMEANS, FH1, FH2, FAGE, DLWMEAN
832+ REAL :: FH1, FH2, FAGE, DLWMEAN
810833 REAL :: BRLAMBDA(NSPEC)
811834#endif
812835
@@ -820,6 +843,9 @@ SUBROUTINE W3SRCE ( srce_call, IT, ISEA, JSEA, IX, IY, IMOD, &
820843
821844#ifdef W3_PDLIB
822845 REAL :: PreVS, DVS, SIDT, FAKS, MAXDAC
846+ LOGICAL :: PrintDeltaSmDA
847+ REAL :: DeltaSRC(NSPEC), DAM2(NSPEC)
848+ REAL :: FRLOCAL, JAC, JAC2, eVS, eVD
823849#endif
824850
825851#ifdef W3_NNT
@@ -2578,7 +2604,7 @@ SUBROUTINE SIGN_VSD_SEMI_IMPLICIT_WW3(SPEC, VS, VD)
25782604 USE W3SERVMD, ONLY: STRACE
25792605#endif
25802606 !
2581- USE W3GDATMD, only : NTH, NK, NSPEC
2607+ USE W3GDATMD, only : NSPEC
25822608 IMPLICIT NONE
25832609 ! /
25842610 ! / ------------------------------------------------------------------- /
@@ -2594,7 +2620,7 @@ SUBROUTINE SIGN_VSD_SEMI_IMPLICIT_WW3(SPEC, VS, VD)
25942620 ! / ------------------------------------------------------------------- /
25952621 ! /
25962622
2597- INTEGER :: ISP, ITH, IK, IS
2623+ INTEGER :: IS
25982624 REAL , INTENT (IN ) :: SPEC(NSPEC)
25992625 REAL , INTENT (INOUT ) :: VS(NSPEC), VD(NSPEC)
26002626#ifdef W3_S
@@ -2667,7 +2693,7 @@ SUBROUTINE SIGN_VSD_PATANKAR_WW3(SPEC, VS, VD)
26672693#endif
26682694 !
26692695
2670- USE W3GDATMD, only : NTH, NK, NSPEC
2696+ USE W3GDATMD, only : NSPEC
26712697 IMPLICIT NONE
26722698 ! /
26732699 ! / ------------------------------------------------------------------- /
@@ -2682,7 +2708,7 @@ SUBROUTINE SIGN_VSD_PATANKAR_WW3(SPEC, VS, VD)
26822708 ! /
26832709 ! / ------------------------------------------------------------------- /
26842710 ! /
2685- INTEGER :: ISP, ITH, IK, IS
2711+ INTEGER :: IS
26862712 REAL , INTENT (IN ) :: SPEC(NSPEC)
26872713 REAL , INTENT (INOUT ) :: VS(NSPEC), VD(NSPEC)
26882714#ifdef W3_S
0 commit comments