SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/LIB/TOPD/prep_restart_coupl_topd.F90
Go to the documentation of this file.
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