Oasis3 4.0.2
qcscur.f
Go to the documentation of this file.
00001       SUBROUTINE qcscur (psgr, kngx, kngy, psurf)
00002 C****
00003 C               *****************************
00004 C               * OASIS ROUTINE  -  LEVEL T *
00005 C               * -------------     ------- *
00006 C               *****************************
00007 C
00008 C**** *qcscur* - Arithmetic routine
00009 C                
00010 C
00011 C     Purpose:
00012 C     -------
00013 C     Calculate surface element for orth.& curvil. grid.
00014 C     The input surface contains the Rearth**2 factor.
00015 C
00016 C**   Interface:
00017 C     ---------
00018 C       *CALL*  *qcscur(psgr, kngx, kngy, psurf)*
00019 C
00020 C     Input:
00021 C     -----
00022 C                psurf : grid square surface elements (real 2D)
00023 C                kngx  : number of longitudes
00024 C                kngy  : number of latitudes
00025 C
00026 C     Output:
00027 C     ------
00028 C                psgr  : spheric grid square surface elements (real 2D)
00029 C
00030 C     Workspace:
00031 C     ---------
00032 C     None
00033 C
00034 C     External:
00035 C     --------
00036 C     None
00037 C
00038 C     References:
00039 C     ----------
00040 C     O. Thual, Simple ocean-atmosphere interpolation. 
00041 C               Part A: The method, EPICOA 0629 (1992)
00042 C               Part B: Software implementation, EPICOA 0630 (1992)
00043 C     See also OASIS manual (1995)
00044 C
00045 C     History:
00046 C     -------
00047 C       Version   Programmer     Date      Description
00048 C       -------   ----------     ----      ----------- 
00049 C       1.0       O. Thual       93/04/15  created 
00050 C       1.1       E. Guilyardi   93/11/04  modified
00051 C       2.0       L. Terray      95/10/01  modified: new structure
00052 C
00053 C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00054 C
00055 C* ---------------------------- Include files ---------------------------
00056 C
00057       USE mod_printing
00058       USE mod_unit
00059 C
00060 C* ---------------------------- Argument declarations -------------------
00061 C     
00062       REAL (kind=ip_realwp_p) psurf(kngx,kngy)
00063       REAL (kind=ip_realwp_p) psgr(kngx,kngy)
00064 C
00065 C* ---------------------------- Poema verses ----------------------------
00066 C
00067 C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00068 C
00069       IF (nlogprt .GE. 2) THEN
00070           WRITE(nulou,*) '***** * Entering ROUTINE qcscur ******* '
00071           CALL FLUSH(nulou)
00072       ENDIF
00073 C
00074 C*    1. Initializations
00075 C        ---------------
00076 C
00077       zradi = 6371229.
00078       zradi2 = zradi**2
00079       zradinv = 1. / zradi2
00080 C
00081 C
00082 C*    2. Surfaces 
00083 C        --------
00084 C* Surface calculation
00085 C
00086       DO 210 j2 = 1, kngy
00087         DO 220 j1 = 1, kngx
00088           psgr(j1,j2) = psurf(j1,j2) * zradinv
00089  220    CONTINUE
00090  210  CONTINUE
00091 C
00092       IF (nlogprt .GE. 2) THEN
00093           WRITE(nulou,*) '***** * Leaving ROUTINE qcscur ******* '
00094           CALL FLUSH(nulou)
00095       ENDIF
00096 C
00097 C* End of routine
00098 C
00099       RETURN 
00100       END
00101 
00102 
00103 
00104 
00105 
00106 
00107 
 All Data Structures Namespaces Files Functions Variables Defines