SURFEX v7.3
General documentation of Surfex
|
00001 !###### 00002 SUBROUTINE PREP_RESTART_COUPL_TOPD(HPROGRAM,KI) 00003 !################################################################### 00004 ! 00005 !!**** * PREP_RESTART_COUPL_TOPD* 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! 00010 !! Write all files needed in case of restart of a simulation coupling SURFEX 00011 !! and TOPODYN 00012 !! 00013 !! REFERENCE 00014 !! --------- 00015 !! 00016 !! AUTHOR 00017 !! ------ 00018 !! B. Vincendon 00019 !! 00020 !! MODIFICATIONS 00021 !! ------------- 00022 !! Original 07/06/11 00023 !------------------------------------------------------------------------------- 00024 ! 00025 !* 0. DECLARATIONS 00026 ! ------------ 00027 ! 00028 USE MODD_TOPODYN, ONLY : NNCAT, XQTOT, NNB_TOPD_STEP,& 00029 XQB_RUN, XQB_DR 00030 USE MODD_COUPLING_TOPD, ONLY : XAS_NATURE,& 00031 NNB_STP_RESTART, XWTOPT,& 00032 XRUN_TOROUT, XDR_TOROUT 00033 ! 00034 USE MODD_SURF_ATM_n, ONLY: NR_NATURE 00035 ! 00036 USE MODI_GET_LUOUT 00037 USE MODI_OPEN_FILE 00038 USE MODI_CLOSE_FILE 00039 ! 00040 USE MODI_WRITE_FILE_MAP 00041 USE MODI_UNPACK_SAME_RANK 00042 USE MODI_WRITE_FILE_ISBAMAP 00043 ! 00044 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00045 USE PARKIND1 ,ONLY : JPRB 00046 ! 00047 IMPLICIT NONE 00048 ! 00049 !* 0.1 declarations of arguments 00050 ! 00051 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes 00052 INTEGER, INTENT(IN) :: KI ! Surfex grid dimension 00053 ! 00054 !* 0.2 declarations of local variables 00055 ! 00056 INTEGER :: ILUOUT ! unit of output listing file 00057 INTEGER :: IUNIT ! unit of restart files 00058 INTEGER :: JSTP, JJ ! loop control indexes 00059 REAL, DIMENSION(:),ALLOCATABLE :: ZAS ! Saturated area fraction for each Isba meshes 00060 CHARACTER(LEN=30) :: YVAR ! name of results file 00061 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00062 !------------------------------------------------------------------------------- 00063 IF (LHOOK) CALL DR_HOOK('PREP_RESTART_COUPL_TOPD',0,ZHOOK_HANDLE) 00064 ! 00065 CALL GET_LUOUT(HPROGRAM,ILUOUT) 00066 ! 00067 ! * 1. Write stock files 00068 ! 00069 WRITE(ILUOUT,*) 'Write STOCK file' 00070 ! 00071 CALL OPEN_FILE('ASCII ',IUNIT,HFILE='stocks_sav.txt',HFORM='FORMATTED',HACTION='WRITE') 00072 DO JSTP = 1,NNB_STP_RESTART 00073 WRITE(IUNIT,*) XRUN_TOROUT(1:NNCAT,JSTP+NNB_TOPD_STEP), XDR_TOROUT(1:NNCAT,JSTP+NNB_TOPD_STEP) 00074 ENDDO 00075 CALL CLOSE_FILE('ASCII ',IUNIT) 00076 ! 00077 ! * 2. Write pixels water content 00078 ! 00079 WRITE(ILUOUT,*) 'Write pixels water content files' 00080 ! 00081 YVAR = '_xwtop_sav.map' 00082 CALL WRITE_FILE_MAP(XWTOPT,YVAR) 00083 ! 00084 ! * 3. Write Asat files 00085 ! 00086 WRITE(ILUOUT,*) 'Write Asat files' 00087 ! 00088 ALLOCATE(ZAS(KI)) 00089 CALL UNPACK_SAME_RANK(NR_NATURE,XAS_NATURE,ZAS) 00090 ! 00091 CALL OPEN_FILE('ASCII ',IUNIT,HFILE='surfcont_sav.map',HFORM='FORMATTED',HACTION='WRITE') 00092 CALL WRITE_FILE_ISBAMAP(IUNIT,ZAS,KI) 00093 CALL CLOSE_FILE('ASCII ',IUNIT) 00094 ! 00095 IF (LHOOK) CALL DR_HOOK('PREP_RESTART_COUPL_TOPD',1,ZHOOK_HANDLE) 00096 !------------------------------------------------------------------------------- 00097 ! 00098 END SUBROUTINE PREP_RESTART_COUPL_TOPD