SURFEX v7.3
General documentation of Surfex
|
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