Oasis3 4.0.2
masq.f
Go to the documentation of this file.
00001       SUBROUTINE masq (pfild, ksize, pmask, kmask)
00002 C****
00003 C               *****************************
00004 C               * OASIS ROUTINE  -  LEVEL 3 *
00005 C               * -------------     ------- *
00006 C               *****************************
00007 C
00008 C**** *masq* - Mask routine
00009 C
00010 C     Purpose:
00011 C     -------
00012 C     Mask field with chosen value
00013 C
00014 C**   Interface:
00015 C     ---------
00016 C       *CALL*  *masq (pfild, ksize, pmask, kmask)*
00017 C
00018 C     Input:
00019 C     -----
00020 C                pfild : field to be masked (real 1D)
00021 C                ksize : array size
00022 C                pmask : mask value given from input
00023 C                kmask : mask array : 0 ---> ocean , 1 ---> land (integer 1D)
00024 C
00025 C     Output:
00026 C     ------
00027 C                pfild : field masked (real 1D)
00028 C
00029 C     Workspace:
00030 C     ---------
00031 C     None
00032 C
00033 C     Externals:
00034 C     ---------
00035 C     cvmgp
00036 C
00037 C     Reference:
00038 C     ---------
00039 C     See OASIS manual (1995)
00040 C
00041 C     History:
00042 C     -------
00043 C       Version   Programmer     Date      Description
00044 C       -------   ----------     ----      -----------  
00045 C       1.0       L. Terray      94/01/01  created
00046 C       2.0beta   L. Terray      95/10/01  modified: new structure
00047 C       2.0       L. Terray      96/02/01  modified: suppression of file
00048 C                                                    doctor.h
00049 C       2.3       S. Valcke      99/04/30  added: printing levels
00050 C       2.5       S. Valcke      2K/09/04  Remove cmach and cvmgp
00051 C
00052 C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00053 C
00054 C* ---------------------------- Include files ---------------------------
00055 C
00056       USE mod_kinds_oasis
00057       USE mod_unit
00058       USE mod_hardware
00059       USE mod_printing
00060 C
00061 C* ---------------------------- Argument declarations -------------------
00062 C
00063       REAL (kind=ip_realwp_p) pfild(ksize)
00064       INTEGER (kind=ip_intwp_p) kmask(ksize)
00065 C
00066 C* ---------------------------- Poema verses ----------------------------
00067 C
00068 C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00069 C
00070 C*    1. Initialization
00071 C        --------------
00072 C
00073       IF (nlogprt .GE. 2) THEN
00074           WRITE (UNIT = nulou,FMT = *)' '
00075           WRITE (UNIT = nulou,FMT = *)'        ROUTINE masq  -  Level 3'
00076           WRITE (UNIT = nulou,FMT = *)'        ************     *******'
00077           WRITE (UNIT = nulou,FMT = *)' '
00078           WRITE (UNIT = nulou,FMT = *)' Mask field with input value'
00079           WRITE (UNIT = nulou,FMT = *)' '
00080           CALL FLUSH(nulou)
00081       ENDIF
00082 C
00083 C
00084 C*    2. Mask field with value
00085 C        ---------------------
00086 C
00087       DO 220 jk = 1, ksize
00088         ztest = float(1 - kmask(jk)) -.5
00089         IF (ztest .LT. 0.) pfild(jk) = pmask
00090  220  CONTINUE 
00091 C
00092 C
00093 C*    3. End of routine
00094 C        --------------
00095 C
00096       IF (nlogprt .GE. 2) THEN
00097           WRITE (UNIT = nulou,FMT = *) ' '
00098           WRITE (UNIT = nulou,FMT = *) 
00099      $    '          --------- End of ROUTINE masq ---------'
00100           CALL FLUSH (nulou)
00101       ENDIF
00102       RETURN
00103       END
 All Data Structures Namespaces Files Functions Variables Defines