*IF DEF,W06_1A VTOTT.2 ! VTOTT.3 ! Description: VTOTT.4 ! This subroutine is part of the wavetrain diagnostic output code VTOTT.5 ! developed by Anne Guillaume at MeteoFrance and ECMWF. VTOTT.6 ! Introduced into the unified wave moel at UM4.1 VTOTT.7 ! VTOTT.8 ! Method: VTOTT.9 ! VTOTT.10 ! VTOTT.11 ! VTOTT.12 ! Current Code Owner: Martin Holt VTOTT.13 ! VTOTT.14 ! History: VTOTT.15 ! Version Date Comment VTOTT.16 ! ------- ---- ------- VTOTT.17 ! UM4.1 June 1996 Code introduced to UM. M Holt VTOTT.18 ! VTOTT.19 ! Code Description: VTOTT.20 ! Language: FORTRAN 77 + common extensions. VTOTT.21 ! VTOTT.22 !- End of header VTOTT.23 VTOTT.24SUBROUTINE VTOTT(PSPEC,KBLO,KJS,KJL,KANG,KFRE,PFREQ, 3VTOTT.25 % PFBIN,PETO,df) VTOTT.26 C VTOTT.27 C**** *VTOTT* - ROUTINE TO CALCULATE TOTAL ENERGY OF SPECTRUM. VTOTT.28 C VTOTT.29 C A.GUILLAUME ECMWF 13/3/92. VTOTT.30 C VTOTT.31 C PURPOSE. VTOTT.32 C -------- VTOTT.33 C *VTOTT* CALCULATES THE TOTAL ENERGY OF WAVE SPECTRUM. VTOTT.34 C VTOTT.35 C** INTERFACE. VTOTT.36 C ---------- VTOTT.37 C VTOTT.38 C *CALL* *VTOTT(PSPEC,KBLO,KJS,KJL,KANG,KFRE,PFREQ,PFBIN,PETO,df) VTOTT.39 C VTOTT.40 C I/ *PSPEC* - SPECTRUM. VTOTT.41 C I/ *KBLO* - DIMENSION OF ONE BLOCK. VTOTT.42 C I/ *KJS* - INDEX OF FIRST POINT OF BLOCK TO USE. VTOTT.43 C I/ *KJL* - INDEX OF LAST POINT OF BLOCK TO USE. VTOTT.44 C I/ *KANG* - NUMBER OF DIRECTIONS. VTOTT.45 C I/ *KFRE* - NUMBER OF FREQUENCIES. VTOTT.46 C I/ *PFREQ* - FREQUENCY ARRAY. VTOTT.47 C I/ *PFBIN* - PFREQ(IF+1)=PFREQ(IF)*(1+PFBIN) VTOTT.48 C /O *PETO* - TOTAL ENERGY, EXACTLY TOTAL ENERGY IS: VTOTT.49 C ETOT*2*3.1416*PFBIN/NTET/2. VTOTT.50 C I/ *df* - array of frequency intervals VTOTT.51 C METHOD. VTOTT.52 C ------- VTOTT.53 C VTOTT.54 C PETO, USED TO DETERMINE THE TOTAL ENERGY ( TOTAL ENERGY= VTOTT.55 C ETOT*2*3.1416*PFBIN/NTET/2.), IS CALCULATED FROM THE SPECTRUM. VTOTT.56 C FREQUENCIES ARE ASSUMED TO BE IN GEOMETRIC PROGRESSION OF VTOTT.57 C FACTOR (1+PFBIN). VTOTT.58 c VTOTT.59 c frequency interval df is calculated as VTOTT.60 c VTOTT.61 c df = 0.5* [ Fi+1 - Fi-1] which rearranges as VTOTT.62 c VTOTT.63 c df = pfbin/2 * Fi * [1 +1/(1+pfbin)] VTOTT.64 C VTOTT.65 C EXTERNALS. VTOTT.66 C ---------- VTOTT.67 C NONE. VTOTT.68 C VTOTT.69 C REFERENCE. VTOTT.70 C ---------- VTOTT.71 C VTOTT.72 DIMENSION PSPEC(KBLO,KANG,KFRE),PETO(KBLO) VTOTT.73 DIMENSION PFREQ(KFRE),df(kfre) VTOTT.74 VTOTT.75 DO 1 J=KJS,KJL VTOTT.76 PETO(J)=0. VTOTT.77 1 CONTINUE VTOTT.78 DO 2 JFRE=1,KFRE VTOTT.79 DO 2 JANG=1,KANG VTOTT.80 DO 2 J=KJS,KJL VTOTT.81 VTOTT.82 if(pfbin.gt.0.0001) then VTOTT.83 PETO(J)=PETO(J)+PSPEC(J,JANG,JFRE)*PFREQ(JFRE) VTOTT.84 % *(1.+1./(1.+PFBIN)) VTOTT.85 else VTOTT.86 c VTOTT.87 CC if using array DF this fills peto with SUM(e*df) VTOTT.88 c VTOTT.89 peto(j)=peto(j)+pspec(j,jang,jfre)*df(jfre) VTOTT.90 endif VTOTT.91 2 CONTINUE VTOTT.92 RETURN VTOTT.93 END VTOTT.94 *ENDIF VTOTT.95