SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/mode_fasurfex.F90
Go to the documentation of this file.
00001 MODULE MODE_FASURFEX
00002 !
00003   INTERFACE FAECR
00004      MODULE PROCEDURE FAECR_I
00005      MODULE PROCEDURE FAECR_R
00006      MODULE PROCEDURE FAECR_L
00007      MODULE PROCEDURE FAECR_C
00008      MODULE PROCEDURE FAECR_I_D
00009      MODULE PROCEDURE FAECR_R_D
00010      MODULE PROCEDURE FAECR_L_D
00011   END INTERFACE
00012 !  
00013   INTERFACE FALIT
00014      MODULE PROCEDURE FALIT_I
00015      MODULE PROCEDURE FALIT_R
00016      MODULE PROCEDURE FALIT_L
00017      MODULE PROCEDURE FALIT_C
00018      MODULE PROCEDURE FALIT_I_D
00019      MODULE PROCEDURE FALIT_R_D
00020      MODULE PROCEDURE FALIT_L_D
00021   END INTERFACE
00022 !
00023 CONTAINS
00024 !
00025 ! #############################################################
00026   SUBROUTINE FAECR_I(KREP,KN,CNOMC,KDATA)
00027 ! #############################################################
00028 !
00029     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00030     USE PARKIND1  ,ONLY : JPRB
00031 !
00032     IMPLICIT NONE
00033 !
00034     INTEGER,INTENT(INOUT)             :: KREP
00035     INTEGER,INTENT(IN)                :: KN
00036     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00037     INTEGER,INTENT(IN)                :: KDATA
00038 !
00039     REAL(KIND=8), DIMENSION(1)        :: ZDONNE
00040     INTEGER                           :: IL
00041     REAL(KIND=JPRB)                   :: ZHOOK_HANDLE
00042 !
00043 !-------------------------------------------------------------------------------
00044     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_I',0,ZHOOK_HANDLE)
00045 !    
00046     ZDONNE(1)=REAL(KDATA,8)
00047     IL=SIZE(ZDONNE)
00048     CALL FAISAN(KREP,KN,CNOMC,ZDONNE,IL)
00049 !    
00050     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_I',1,ZHOOK_HANDLE)
00051 !-------------------------------------------------------------------------------
00052 !
00053   END SUBROUTINE FAECR_I
00054 !
00055 ! #############################################################
00056   SUBROUTINE FAECR_I_D(KREP,KN,CNOMC,KSIZE,KDATA)
00057 ! #############################################################
00058 !
00059     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00060     USE PARKIND1  ,ONLY : JPRB
00061 !
00062     IMPLICIT NONE
00063 !
00064     INTEGER,INTENT(INOUT)             :: KREP
00065     INTEGER,INTENT(IN)                :: KN
00066     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00067     INTEGER,INTENT(IN)                :: KSIZE
00068     INTEGER,DIMENSION(KSIZE),INTENT(IN):: KDATA
00069 !
00070     REAL(KIND=8),DIMENSION(KSIZE)      :: ZDONNE
00071     INTEGER                            :: I
00072     REAL(KIND=JPRB)                    :: ZHOOK_HANDLE
00073 !
00074 !-------------------------------------------------------------------------------
00075     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_I_D',0,ZHOOK_HANDLE)
00076 !    
00077     DO I=1,KSIZE
00078        ZDONNE(I)=REAL(KDATA(I),8)
00079     END DO
00080     CALL FAISAN(KREP,KN,CNOMC,ZDONNE,KSIZE)
00081 !    
00082     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_I_D',1,ZHOOK_HANDLE)
00083 !-------------------------------------------------------------------------------
00084 !
00085   END SUBROUTINE FAECR_I_D
00086 
00087 ! #############################################################
00088   SUBROUTINE FAECR_R(KREP,KN,CNOMC,PDATA)
00089 ! #############################################################
00090 !
00091     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00092     USE PARKIND1  ,ONLY : JPRB
00093 !
00094     IMPLICIT NONE
00095 !
00096     INTEGER,INTENT(INOUT)             :: KREP
00097     INTEGER,INTENT(IN)                :: KN
00098     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00099     REAL,INTENT(IN)                   :: PDATA
00100 !
00101     REAL(KIND=8), DIMENSION(1)        :: ZDONNE
00102     INTEGER                           :: IL
00103     REAL(KIND=JPRB)                   :: ZHOOK_HANDLE
00104 !
00105 !-------------------------------------------------------------------------------
00106     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_R',0,ZHOOK_HANDLE)
00107 !    
00108     ZDONNE(1)=REAL(PDATA,8)
00109     IL=SIZE(ZDONNE)
00110     CALL FAISAN(KREP,KN,CNOMC,ZDONNE,IL)
00111 !    
00112     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_R',1,ZHOOK_HANDLE)
00113 !-------------------------------------------------------------------------------
00114 !
00115   END SUBROUTINE FAECR_R
00116 !
00117 ! #############################################################
00118   SUBROUTINE FAECR_R_D(KREP,KN,CNOMC,KSIZE,PDATA)
00119 ! #############################################################
00120 !
00121     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00122     USE PARKIND1  ,ONLY : JPRB
00123 !
00124     IMPLICIT NONE
00125 !
00126     INTEGER,INTENT(INOUT)             :: KREP
00127     INTEGER,INTENT(IN)                :: KN
00128     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00129     INTEGER,INTENT(IN)                :: KSIZE
00130     REAL,DIMENSION(KSIZE),INTENT(IN)  :: PDATA
00131 !
00132     REAL(KIND=8),DIMENSION(KSIZE)     :: ZDONNE
00133     INTEGER                           :: I
00134     REAL(KIND=JPRB)                   :: ZHOOK_HANDLE
00135 !
00136 !-------------------------------------------------------------------------------
00137     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_R_D',0,ZHOOK_HANDLE)
00138 !    
00139     DO I=1,KSIZE
00140        ZDONNE(I)=REAL(PDATA(I),8)
00141     END DO
00142     CALL FAISAN(KREP,KN,CNOMC,ZDONNE,KSIZE)
00143 !    
00144     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_R_D',1,ZHOOK_HANDLE)   
00145 !-------------------------------------------------------------------------------
00146 !
00147   END SUBROUTINE FAECR_R_D
00148 !
00149 ! #############################################################
00150   SUBROUTINE FAECR_L(KREP,KN,CNOMC,LDATA)
00151 ! #############################################################
00152 !
00153     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00154     USE PARKIND1  ,ONLY : JPRB
00155 !
00156     IMPLICIT NONE
00157 !
00158     INTEGER,INTENT(INOUT)             :: KREP
00159     INTEGER,INTENT(IN)                :: KN
00160     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00161     LOGICAL,INTENT(IN)                :: LDATA
00162 !
00163     REAL(KIND=8),DIMENSION(1)         :: ZDONNE
00164     INTEGER                           :: IL
00165     REAL(KIND=JPRB)                   :: ZHOOK_HANDLE
00166 !
00167 !-------------------------------------------------------------------------------
00168     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_L',0,ZHOOK_HANDLE)
00169 !    
00170     IF (LDATA) THEN 
00171       ZDONNE(1)=1.
00172     ELSE
00173       ZDONNE(1)=0.
00174     ENDIF
00175     IL=SIZE(ZDONNE)
00176     CALL FAISAN(KREP,KN,CNOMC,ZDONNE,IL)
00177 !    
00178     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_L',1,ZHOOK_HANDLE)   
00179 !-------------------------------------------------------------------------------
00180 !
00181   END SUBROUTINE FAECR_L
00182 !
00183 ! #############################################################
00184   SUBROUTINE FAECR_L_D(KREP,KN,CNOMC,KSIZE,LDATA)
00185 ! #############################################################
00186 !
00187     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00188     USE PARKIND1  ,ONLY : JPRB
00189 !
00190     IMPLICIT NONE
00191 !
00192     INTEGER,INTENT(INOUT)             :: KREP
00193     INTEGER,INTENT(IN)                :: KN
00194     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00195     INTEGER,INTENT(IN)                :: KSIZE
00196     LOGICAL,DIMENSION(KSIZE),INTENT(IN) :: LDATA
00197 !
00198     REAL(KIND=8),DIMENSION(KSIZE)     :: ZDONNE
00199     INTEGER                           :: I
00200     REAL(KIND=JPRB)                   :: ZHOOK_HANDLE
00201 !
00202 !-------------------------------------------------------------------------------
00203     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_L_D',0,ZHOOK_HANDLE)
00204 !    
00205     DO I=1,KSIZE
00206        IF (LDATA(I)) THEN 
00207           ZDONNE(I)=1.
00208        ELSE
00209           ZDONNE(I)=0.
00210        ENDIF
00211     END DO
00212     CALL FAISAN(KREP,KN,CNOMC,ZDONNE,KSIZE)
00213 !    
00214     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_L_D',1,ZHOOK_HANDLE)   
00215 !-------------------------------------------------------------------------------
00216 !
00217   END SUBROUTINE FAECR_L_D
00218 !
00219 ! #############################################################
00220   SUBROUTINE FAECR_C(KREP,KN,CNOMC,KSIZE,CDATA)
00221 ! #############################################################
00222 !
00223     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00224     USE PARKIND1  ,ONLY : JPRB
00225 !
00226     IMPLICIT NONE
00227 !
00228     INTEGER,INTENT(INOUT)             :: KREP
00229     INTEGER,INTENT(IN)                :: KN
00230     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00231     INTEGER,INTENT(IN)                :: KSIZE
00232     CHARACTER,DIMENSION(KSIZE),INTENT(IN) :: CDATA
00233 !
00234     REAL(KIND=8),DIMENSION(KSIZE)     :: ZDONNE
00235     INTEGER                           :: I
00236     REAL(KIND=JPRB)                   :: ZHOOK_HANDLE
00237 !
00238 !-------------------------------------------------------------------------------
00239     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_C',0,ZHOOK_HANDLE)
00240 !    
00241     DO I=1,KSIZE
00242        ZDONNE(I)=REAL(ICHAR(CDATA(I)),8)
00243     END DO
00244     CALL FAISAN(KREP,KN,CNOMC,ZDONNE,KSIZE)
00245 !    
00246     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FAECR_C',1,ZHOOK_HANDLE)   
00247 !-------------------------------------------------------------------------------
00248 !
00249   END SUBROUTINE FAECR_C
00250 !
00251 ! #############################################################
00252   SUBROUTINE FALIT_I_D(KREP,KN,CNOMC,KSIZE,KDATA)
00253 ! #############################################################
00254 !
00255     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00256     USE PARKIND1  ,ONLY : JPRB
00257 !
00258     IMPLICIT NONE
00259 !
00260     INTEGER,INTENT(INOUT)             :: KREP
00261     INTEGER,INTENT(IN)                :: KN
00262     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00263     INTEGER,INTENT(IN)                :: KSIZE
00264     INTEGER,DIMENSION(KSIZE),INTENT(OUT) :: KDATA
00265 !
00266     REAL(KIND=8),DIMENSION(KSIZE)     :: ZDONNE
00267     INTEGER                           :: I
00268     REAL(KIND=JPRB)                   :: ZHOOK_HANDLE
00269 !
00270 !-------------------------------------------------------------------------------
00271     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_I_D',0,ZHOOK_HANDLE)
00272 !    
00273     CALL FALAIS(KREP,KN,CNOMC,ZDONNE,KSIZE)
00274     DO I=1,KSIZE
00275        KDATA(I)=ANINT(ZDONNE(I),KIND(KDATA))
00276     END DO
00277 !
00278     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_I_D',1,ZHOOK_HANDLE)
00279 !-------------------------------------------------------------------------------
00280 !
00281   END SUBROUTINE FALIT_I_D 
00282 !
00283 ! #############################################################
00284   SUBROUTINE FALIT_I(KREP,KN,CNOMC,KDATA)
00285 ! #############################################################
00286 !
00287     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00288     USE PARKIND1  ,ONLY : JPRB
00289 !
00290     IMPLICIT NONE
00291 !
00292     INTEGER,INTENT(INOUT)             :: KREP
00293     INTEGER,INTENT(IN)                :: KN
00294     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00295     INTEGER,INTENT(OUT)               :: KDATA
00296 !
00297     REAL(KIND=8), DIMENSION(1)        :: ZDONNE
00298     INTEGER                           :: IL
00299     REAL(KIND=JPRB)                   :: ZHOOK_HANDLE
00300 !
00301 !-------------------------------------------------------------------------------
00302     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_I',0,ZHOOK_HANDLE)
00303 !    
00304     IL=SIZE(ZDONNE)
00305     CALL FALAIS(KREP,KN,CNOMC,ZDONNE,IL)
00306     KDATA=ANINT(ZDONNE(1),KIND(KDATA))
00307 !    
00308     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_I',1,ZHOOK_HANDLE)
00309 !-------------------------------------------------------------------------------
00310 !
00311   END SUBROUTINE FALIT_I 
00312 !
00313 ! #############################################################
00314   SUBROUTINE FALIT_R_D(KREP,KN,CNOMC,KSIZE,PDATA)
00315 ! #############################################################
00316 !
00317     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00318     USE PARKIND1  ,ONLY : JPRB
00319 !
00320     IMPLICIT NONE
00321 !
00322     INTEGER,INTENT(INOUT)             :: KREP
00323     INTEGER,INTENT(IN)                :: KN
00324     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00325     INTEGER,INTENT(IN)                :: KSIZE
00326     REAL,DIMENSION(KSIZE),INTENT(OUT) :: PDATA
00327 !
00328     REAL(KIND=8),DIMENSION(KSIZE)     :: ZDONNE
00329     INTEGER                           :: I
00330     REAL(KIND=JPRB)                   :: ZHOOK_HANDLE
00331 !
00332 !-------------------------------------------------------------------------------
00333     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_R_D',0,ZHOOK_HANDLE)
00334 !    
00335     CALL FALAIS(KREP,KN,CNOMC,ZDONNE,KSIZE)
00336     DO I=1,KSIZE
00337        PDATA(I)=REAL(ZDONNE(I),KIND(PDATA))
00338     END DO
00339 !    
00340     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_R_D',1,ZHOOK_HANDLE)
00341 !-------------------------------------------------------------------------------
00342 !
00343   END SUBROUTINE FALIT_R_D
00344 !
00345 ! #############################################################
00346   SUBROUTINE FALIT_R(KREP,KN,CNOMC,PDATA)
00347 ! #############################################################
00348 !
00349     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00350     USE PARKIND1  ,ONLY : JPRB
00351 !
00352     IMPLICIT NONE
00353 !
00354     INTEGER,INTENT(INOUT)             :: KREP
00355     INTEGER,INTENT(IN)                :: KN
00356     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00357     REAL,INTENT(OUT)                  :: PDATA
00358 !
00359     REAL(KIND=8), DIMENSION(1)        :: ZDONNE
00360     INTEGER                           :: IL
00361     REAL(KIND=JPRB)                   :: ZHOOK_HANDLE
00362 !
00363 !-------------------------------------------------------------------------------
00364     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_R',0,ZHOOK_HANDLE)
00365 !    
00366     IL=SIZE(ZDONNE)
00367     CALL FALAIS(KREP,KN,CNOMC,ZDONNE,IL)
00368     PDATA=REAL(ZDONNE(1),KIND(PDATA))
00369 !    
00370     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_R',1,ZHOOK_HANDLE)
00371 !-------------------------------------------------------------------------------
00372 !
00373   END SUBROUTINE FALIT_R
00374 !
00375 ! #############################################################
00376   SUBROUTINE FALIT_L_D(KREP,KN,CNOMC,KSIZE,LDATA)
00377 ! #############################################################
00378 !
00379     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00380     USE PARKIND1  ,ONLY : JPRB
00381 !
00382     IMPLICIT NONE
00383 !
00384     INTEGER,INTENT(INOUT)             :: KREP
00385     INTEGER,INTENT(IN)                :: KN
00386     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00387     INTEGER,INTENT(IN)                :: KSIZE
00388     LOGICAL,DIMENSION(KSIZE),INTENT(OUT)  :: LDATA
00389 !
00390     REAL(KIND=8),DIMENSION(KSIZE)     :: ZDONNE
00391     INTEGER                           :: I
00392     REAL(KIND=JPRB)                   :: ZHOOK_HANDLE
00393 !
00394 !-------------------------------------------------------------------------------
00395     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_L_D',0,ZHOOK_HANDLE)
00396 !    
00397     CALL FALAIS(KREP,KN,CNOMC,ZDONNE,KSIZE)
00398     DO I=1,KSIZE
00399        LDATA(I)=LOGICAL(ZDONNE(I)==1.,KIND(LDATA))
00400     END DO
00401 !    
00402     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_L_D',1,ZHOOK_HANDLE)
00403 !-------------------------------------------------------------------------------
00404 !
00405   END SUBROUTINE FALIT_L_D 
00406 !
00407 ! #############################################################
00408   SUBROUTINE FALIT_L(KREP,KN,CNOMC,LDATA)
00409 ! #############################################################
00410 !
00411     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00412     USE PARKIND1  ,ONLY : JPRB
00413 !
00414     IMPLICIT NONE
00415 !
00416     INTEGER,INTENT(INOUT)             :: KREP
00417 !
00418     INTEGER,INTENT(IN)                :: KN
00419     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00420     LOGICAL,INTENT(OUT)               :: LDATA
00421 !
00422     REAL(KIND=8), DIMENSION(1)        :: ZDONNE
00423     INTEGER                           :: IL
00424     REAL(KIND=JPRB)                   :: ZHOOK_HANDLE
00425 !
00426 !-------------------------------------------------------------------------------
00427     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_L',0,ZHOOK_HANDLE)
00428 !    
00429     IL=SIZE(ZDONNE)
00430     CALL FALAIS(KREP,KN,CNOMC,ZDONNE,IL)
00431     LDATA=LOGICAL(ZDONNE(1)==1.,KIND(LDATA))
00432 !    
00433     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_L',1,ZHOOK_HANDLE)
00434 !-------------------------------------------------------------------------------
00435 !
00436   END SUBROUTINE FALIT_L 
00437 !
00438 ! #############################################################
00439   SUBROUTINE FALIT_C(KREP,KN,CNOMC,KSIZE,CDATA)
00440 ! #############################################################
00441 !
00442     USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00443     USE PARKIND1  ,ONLY : JPRB
00444 !
00445     IMPLICIT NONE
00446 !
00447     INTEGER,INTENT(INOUT)             :: KREP
00448     INTEGER,INTENT(IN)                :: KN
00449     CHARACTER(LEN=18),INTENT(IN)      :: CNOMC
00450     INTEGER,INTENT(IN)                :: KSIZE
00451     CHARACTER,DIMENSION(KSIZE),INTENT(OUT)  :: CDATA
00452 !
00453     REAL(KIND=8),DIMENSION(KSIZE)     :: ZDONNE
00454     INTEGER                           :: I,J
00455     REAL(KIND=JPRB)                   :: ZHOOK_HANDLE
00456 !
00457 !-------------------------------------------------------------------------------
00458     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_C',0,ZHOOK_HANDLE)
00459 !    
00460     CALL FALAIS(KREP,KN,CNOMC,ZDONNE,KSIZE)
00461     DO I=1,KSIZE
00462        J=ANINT(ZDONNE(I))
00463        CDATA(I)=CHAR(J)
00464     END DO
00465 !    
00466     IF (LHOOK) CALL DR_HOOK('MODE_FASURFEX:FALIT_C',1,ZHOOK_HANDLE)    
00467 !-------------------------------------------------------------------------------
00468 !    
00469   END SUBROUTINE FALIT_C
00470 !
00471 !-------------------------------------------------------------------------------
00472 !-------------------------------------------------------------------------------
00473 !
00474 END MODULE MODE_FASURFEX
00475 
00476