#include "w3macros.h" !/ ------------------------------------------------------------------- / MODULE W3PROXMD !/ !/ +-----------------------------------+ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | !/ | Last update : 29-May-2009 | !/ +-----------------------------------+ !/ !/ 18-Feb-2004 : Origination. !/ 23-Jun-2006 : Formatted for submitting code for ( version 3.09 ) !/ inclusion in WAVEWATCH III. !/ 29-May-2009 : Preparing distribution version. ( version 3.14 ) !/ !/ Copyright 2009 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights !/ reserved. WAVEWATCH III is a trademark of the NWS. !/ No unauthorized use without permission. !/ ! 1. Purpose : ! ! Dummy slot for propagation routines. ! This module can be used to include user-defined propagation ! schemes / meyjosd or to submit these to be included into the ! WAVEWATCH III distribution. See section 5 for requirements for ! submissions. ! Codes may be included in WAVEWATCH III as a standard option ! with it's own dedicated compile switch, or as a version of this ! module that can be plugged in by a user. ! ! 2. Variables and types : ! ! Name Type Scope Description ! ---------------------------------------------------------------- ! ---------------------------------------------------------------- ! ! 3. Subroutines and functions : ! ! Name Type Scope Description ! ---------------------------------------------------------------- ! W3XYPX Subr. Public User supplied spatial propagation. ! W3KTPX Subr. Public User supplied spectral propagation. ! W3MAPX Subr. Public Preprocessing (mapping) for routines. ! ---------------------------------------------------------------- ! ! 4. Subroutines and functions used : ! ! Name Type Module Description ! ---------------------------------------------------------------- ! ---------------------------------------------------------------- ! ! 5. Remarks : ! ! WAVEWATCH III is designed as a highly plug-compatible code. ! Propagation modules can be included as self-contained modules, ! with limited changes needed to the interface of routine calls ! in W3WAVE only. Codes submitted for inclusion in WAVEWATCH ! III should be self-contained in the way described below, and ! might be provided with distributions fully integrated in the ! data structure, or as an optional version of this module to be ! included by the user. ! ! Rules for preparing a module to be included in or distributed ! with WAVEWATCH III : ! ! - Fully document the code following the outline given in this ! file, and according to all other WAVEWATCH III routines. ! - Provide a file with necessary modifications to W3SRCE and ! all other routines that require modification. ! - Provide a test case with expected results. ! - It is strongly recommended that the programming style used ! in WAVEWATCH III is followed, in particular ! a) for readability, write as if in fixed FORTRAN format ! regarding column use, even though all files are F90 ! free format. ! b) I prefer upper case programming for permanent code, ! as I use lower case in debugging and temporary code. ! ! This module needs to be self-contained in the following way. ! ! a) All saved variables connected with this source term need ! to be declared in the module header. Upon acceptance as ! permanent code, they will be converted to the WAVEWATCH III ! dynamic data structure. ! b) Preprocessing should be done in W3MAPX, and this reoutine ! needs to be able o be called multiple times, as propagation ! schemes are re-initialized every time propagation 'maps' ! change (see established routines). ! ! 6. Switches : ! ! 7. Source code : !/ !/ ------------------------------------------------------------------- / !/ ! ***************************************** ! *** Declare saved variables here *** ! *** public or private as appropriate *** ! ***************************************** ! PUBLIC !/ CONTAINS !/ ------------------------------------------------------------------- / SUBROUTINE W3XYPX !/ !/ +-----------------------------------+ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | !/ | Last update : 23-Jun-2006 | !/ +-----------------------------------+ !/ !/ 13-Dec-1999 : Origination. !/ 23-Jun-2006 : Formatted for submitting code for ( version 3.09 ) !/ inclusion in WAVEWATCH III. !/ ! 1. Purpose : ! ! Slot for user-supplied spatial propagation. ! ! 2. Method : ! ! 3. Parameters : ! ! Parameter list ! ---------------------------------------------------------------- ! ---------------------------------------------------------------- ! ! 4. Subroutines used : ! ! Name Type Module Description ! ---------------------------------------------------------------- ! STRACE Subr. W3SERVMD Subroutine tracing. ! ---------------------------------------------------------------- ! ! 5. Called by : ! ! Name Type Module Description ! ---------------------------------------------------------------- ! W3WAVE Subr. W3WAVEMD Main wave model routine. ! ---------------------------------------------------------------- ! ! 6. Error messages : ! ! None. ! ! 7. Remarks : ! ! 8. Structure : ! ! See source code. ! ! 9. Switches : ! ! !/S Enable subroutine tracing. ! ! 10. Source code : ! !/ ------------------------------------------------------------------- / !/ ! USE W3GDATMD USE W3ODATMD, ONLY: NDSE, NDST USE W3SERVMD, ONLY: EXTCDE !/S USE W3SERVMD, ONLY: STRACE !/ IMPLICIT NONE !/ !/ ------------------------------------------------------------------- / !/ Parameter list !/ !/ !/ ------------------------------------------------------------------- / !/ Local parameters !/ !/S INTEGER, SAVE :: IENT = 0 !/ !/ ------------------------------------------------------------------- / !/ !/S CALL STRACE (IENT, 'W3XYPX') ! ! 1. .... ----------------------------------------------------------- * ! WRITE (NDSE,*) WRITE (NDSE,*) ' *** ROUTINE W3XYPX NOT YET AVAILABLE *** ' WRITE (NDSE,*) CALL EXTCDE ( 99 ) !/ !/ End of W3XYPX ----------------------------------------------------- / !/ END SUBROUTINE W3XYPX !/ ------------------------------------------------------------------- / SUBROUTINE W3MAPX !/ !/ +-----------------------------------+ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | !/ | Last update : 23-Jun-2006 | !/ +-----------------------------------+ !/ !/ 13-Dec-1999 : Origination. !/ 23-Jun-2006 : Formatted for submitting code for ( version 3.09 ) !/ inclusion in WAVEWATCH III. !/ ! 1. Purpose : ! ! Preprocessing (mapping) for proapagtion routines. ! ! 2. Method : ! ! 3. Parameters : ! ! Parameter list ! ---------------------------------------------------------------- ! ---------------------------------------------------------------- ! ! 4. Subroutines used : ! ! Name Type Module Description ! ---------------------------------------------------------------- ! STRACE Subr. W3SERVMD Subroutine tracing. ! ---------------------------------------------------------------- ! ! 5. Called by : ! ! Name Type Module Description ! ---------------------------------------------------------------- ! W3WAVE Subr. W3WAVEMD Main wave model routine. ! ---------------------------------------------------------------- ! ! 6. Error messages : ! ! None. ! ! 7. Remarks : ! ! 8. Structure : ! ! See source code. ! ! 9. Switches : ! ! !/S Enable subroutine tracing. ! ! 10. Source code : ! !/ ------------------------------------------------------------------- / !/ ! USE W3GDATMD USE W3ODATMD, ONLY: NDSE, NDST USE W3SERVMD, ONLY: EXTCDE !/S USE W3SERVMD, ONLY: STRACE !/ IMPLICIT NONE !/ !/ ------------------------------------------------------------------- / !/ Parameter list !/ !/ !/ ------------------------------------------------------------------- / !/ Local parameters !/ !/S INTEGER, SAVE :: IENT = 0 !/ !/ ------------------------------------------------------------------- / !/ !/S CALL STRACE (IENT, 'W3MAPX') ! ! 1. .... ----------------------------------------------------------- * ! WRITE (NDSE,*) WRITE (NDSE,*) ' *** ROUTINE W3MAPX NOT YET AVAILABLE *** ' WRITE (NDSE,*) CALL EXTCDE ( 99 ) !/ !/ End of W3MAPX ----------------------------------------------------- / !/ END SUBROUTINE W3MAPX !/ ------------------------------------------------------------------- / SUBROUTINE W3KTPX !/ !/ +-----------------------------------+ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | !/ | Last update : 23-Jun-2006 | !/ +-----------------------------------+ !/ !/ 13-Dec-1999 : Origination. !/ 23-Jun-2006 : Formatted for submitting code for ( version 3.09 ) !/ inclusion in WAVEWATCH III. !/ ! 1. Purpose : ! ! Slot for user-supplied spectral propagation. ! ! 2. Method : ! ! 3. Parameters : ! ! Parameter list ! ---------------------------------------------------------------- ! ---------------------------------------------------------------- ! ! 4. Subroutines used : ! ! Name Type Module Description ! ---------------------------------------------------------------- ! STRACE Subr. W3SERVMD Subroutine tracing. ! ---------------------------------------------------------------- ! ! 5. Called by : ! ! Name Type Module Description ! ---------------------------------------------------------------- ! W3WAVE Subr. W3WAVEMD Main wave model routine. ! ---------------------------------------------------------------- ! ! 6. Error messages : ! ! None. ! ! 7. Remarks : ! ! 8. Structure : ! ! See source code. ! ! 9. Switches : ! ! !/S Enable subroutine tracing. ! ! 10. Source code : ! !/ ------------------------------------------------------------------- / !/ ! USE W3GDATMD USE W3ODATMD, ONLY: NDSE, NDST USE W3SERVMD, ONLY: EXTCDE !/S USE W3SERVMD, ONLY: STRACE !/ IMPLICIT NONE !/ !/ ------------------------------------------------------------------- / !/ Parameter list !/ !/ !/ ------------------------------------------------------------------- / !/ Local parameters !/ !/S INTEGER, SAVE :: IENT = 0 !/ !/ ------------------------------------------------------------------- / !/ !/S CALL STRACE (IENT, 'W3KTPX') ! ! 1. .... ----------------------------------------------------------- * ! WRITE (NDSE,*) WRITE (NDSE,*) ' *** ROUTINE W3KTPX NOT YET AVAILABLE *** ' WRITE (NDSE,*) CALL EXTCDE ( 99 ) !/ !/ End of W3KTPX ----------------------------------------------------- / !/ END SUBROUTINE W3KTPX !/ !/ End of module W3PROXMD -------------------------------------------- / !/ END MODULE W3PROXMD