*IF DEF,W06_1A WTRAIN1.2 ! WTRAIN1.3 ! Description: WTRAIN1.4 ! This subroutine is part of the wavetrain diagnostic output code WTRAIN1.5 ! developed by Anne Guillaume at MeteoFrance and ECMWF. WTRAIN1.6 ! Introduced into the unified wave moel at UM4.1 WTRAIN1.7 ! WTRAIN1.8 ! Method: WTRAIN1.9 ! WTRAIN1.10 ! WTRAIN1.11 ! WTRAIN1.12 ! Current Code Owner: Martin Holt WTRAIN1.13 ! WTRAIN1.14 ! History: WTRAIN1.15 ! Version Date Comment WTRAIN1.16 ! ------- ---- ------- WTRAIN1.17 ! UM4.1 June 1996 Code introduced to UM. M Holt WTRAIN1.18 ! WTRAIN1.19 ! Code Description: WTRAIN1.20 ! Language: FORTRAN 77 + common extensions. WTRAIN1.21 ! WTRAIN1.22 !- End of header WTRAIN1.23 WTRAIN1.24SUBROUTINE WTRAIN1(PSPEC,KBLO,KJS,KJL,KANG,KFRE,PRES,ISPEC) 1WTRAIN1.25 C WTRAIN1.26 C**** *WTRAIN1* - WAVE TRAIN 1ST ROUTINE. WTRAIN1.27 C WTRAIN1.28 C A.GUILLAUME WTRAIN1.29 C WTRAIN1.30 C WTRAIN1.31 C* PURPOSE. WTRAIN1.32 C -------- WTRAIN1.33 C WTRAIN1.34 C COMPUTE MAX OF SPECTRA AND REDUCE TO INTEGER VALUES. WTRAIN1.35 C WTRAIN1.36 C** INTERFACE. WTRAIN1.37 C ---------- WTRAIN1.38 C WTRAIN1.39 C *CALL* *WTRAIN1(PSPEC,KBLO,KJS,KJL,KANG,KFRE,PRES,ISPEC) WTRAIN1.40 C WTRAIN1.41 C I/ *PSPEC* - SPECTRUM. WTRAIN1.42 C I/ *KBLO* - DIMENSION OF ONE BLOCK. WTRAIN1.43 C I/ *KJS* - INDEX OF FIRST POINT OF BLOCK TO USE. WTRAIN1.44 C I/ *KJL* - INDEX OF LAST POINT OF BLOCK TO USE. WTRAIN1.45 C I/ *KANG* - NUMBER OF DIRECTIONS. WTRAIN1.46 C I/ *KFRE* - NUMBER OF FREQUENCIES. WTRAIN1.47 C I/ *PRES* - INTERPOLLATION PRECISION WTRAIN1.48 C /O *ISPEC* - INTEGER SPECTRA WTRAIN1.49 C WTRAIN1.50 C METHOD. WTRAIN1.51 C ------- WTRAIN1.52 C WTRAIN1.53 C NONE. WTRAIN1.54 C WTRAIN1.55 C EXTERNALS. WTRAIN1.56 C ---------- WTRAIN1.57 C WTRAIN1.58 C NONE. WTRAIN1.59 C WTRAIN1.60 C REFERENCE. WTRAIN1.61 C ---------- WTRAIN1.62 C WTRAIN1.63 C NONE. WTRAIN1.64 C WTRAIN1.65 C WTRAIN1.66 DIMENSION PSPEC(KBLO,KANG,KFRE) WTRAIN1.67 DIMENSION ISPEC(KJL-KJS+1,KANG,KFRE) WTRAIN1.68 C..WORKING ARRAYS: WTRAIN1.69 DIMENSION ZFMAX(KJL-KJS+1) WTRAIN1.70 C WTRAIN1.71 C* 1. INITIALISE ZFMAX. WTRAIN1.72 C ---------------- WTRAIN1.73 C WTRAIN1.74 100 CONTINUE WTRAIN1.75 DO 101 J=1,KJL-KJS+1 WTRAIN1.76 ZFMAX(J) = 0.1E-20 WTRAIN1.77 101 CONTINUE WTRAIN1.78 C WTRAIN1.79 C* 2. FIND MAX OF SPECTRA. WTRAIN1.80 C ------------------- WTRAIN1.81 C WTRAIN1.82 200 CONTINUE WTRAIN1.83 DO 201 JFRE=1,KFRE WTRAIN1.84 DO 201 JANG=1,KANG WTRAIN1.85 DO 201 J=1,KJL-KJS+1 WTRAIN1.86 ZFMAX(J)=AMAX1(ZFMAX(J),PSPEC(J+KJS-1,JANG,JFRE)) WTRAIN1.87 201 CONTINUE WTRAIN1.88 C WTRAIN1.89 C* 3. RE_SCALE SPECTRA TO INTEGER VALUES. WTRAIN1.90 C ----------------------------------- WTRAIN1.91 C WTRAIN1.92 300 CONTINUE WTRAIN1.93 DO 301 JFRE=1,KFRE WTRAIN1.94 DO 301 JANG=1,KANG WTRAIN1.95 DO 301 J=1,KJL-KJS+1 WTRAIN1.96 ISPEC(J,JANG,JFRE)=INT(PSPEC(J+KJS-1,JANG,JFRE)/ZFMAX(J)*PRES) WTRAIN1.97 301 CONTINUE WTRAIN1.98 RETURN WTRAIN1.99 END WTRAIN1.100 *ENDIF WTRAIN1.101