SURFEX v7.3
General documentation of Surfex
|
00001 MODULE MODE_MODELN_TRIP_HANDLER 00002 ! 00003 ! 00004 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00005 USE PARKIND1 ,ONLY : JPRB 00006 ! 00007 IMPLICIT NONE 00008 00009 INTEGER, SAVE, PRIVATE :: ICURRENT_MODEL_TRIP = -1 00010 !$OMP THREADPRIVATE(ICURRENT_MODEL_TRIP) 00011 00012 CONTAINS 00013 00014 FUNCTION GET_CURRENT_MODEL_INDEX_TRIP() 00015 INTEGER :: GET_CURRENT_MODEL_INDEX_TRIP 00016 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00017 !! 00018 IF (LHOOK) CALL DR_HOOK('MODE_MODELN_TRIP_HANDLER:GET_CURRENT_MODEL_INDEX_TRIP',0,ZHOOK_HANDLE) 00019 GET_CURRENT_MODEL_INDEX_TRIP = ICURRENT_MODEL_TRIP 00020 IF (LHOOK) CALL DR_HOOK('MODE_MODELN_TRIP_HANDLER:GET_CURRENT_MODEL_INDEX_TRIP',1,ZHOOK_HANDLE) 00021 !! 00022 END FUNCTION GET_CURRENT_MODEL_INDEX_TRIP 00023 ! 00024 SUBROUTINE GOTO_MODEL_TRIP(KMI, LKFROM) 00025 ! 00026 USE MODI_GOTO_WRAPPER_TRIP 00027 ! 00028 LOGICAL, INTENT(IN) :: LKFROM 00029 INTEGER, INTENT(IN) :: KMI 00030 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00031 ! 00032 IF (LHOOK) CALL DR_HOOK('MODE_MODELN_TRIP_HANDLER:GOTO_MODEL_TRIP',0,ZHOOK_HANDLE) 00033 00034 IF (LKFROM) THEN 00035 00036 IF (ICURRENT_MODEL_TRIP == -1) THEN 00037 ! First call to GOTO_MODEL_TRIP 00038 ICURRENT_MODEL_TRIP = 1 ! Default model index 00039 ! 00040 CALL GOTO_WRAPPER_TRIP (ICURRENT_MODEL_TRIP, KMI, LKFROM) 00041 ICURRENT_MODEL_TRIP = KMI 00042 ! 00043 ELSE 00044 ! 00045 CALL GOTO_WRAPPER_TRIP (ICURRENT_MODEL_TRIP, KMI, LKFROM) 00046 ICURRENT_MODEL_TRIP = KMI 00047 ! 00048 END IF 00049 ! 00050 ELSE 00051 ! 00052 CALL GOTO_WRAPPER_TRIP (ICURRENT_MODEL_TRIP, KMI, LKFROM) 00053 ICURRENT_MODEL_TRIP = KMI 00054 ! 00055 END IF 00056 ! 00057 IF (LHOOK) CALL DR_HOOK('MODE_MODELN_TRIP_HANDLER:GOTO_MODEL_TRIP',1,ZHOOK_HANDLE) 00058 ! 00059 END SUBROUTINE GOTO_MODEL_TRIP 00060 00061 END MODULE MODE_MODELN_TRIP_HANDLER 00062