SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/OFFLIN/init_outfn_flaken.F90
Go to the documentation of this file.
00001 !     #########
00002        SUBROUTINE INIT_OUTFN_FLAKE_n(HPROGRAM,KLUOUT)
00003 !     ###############################
00004 !
00005 !!****  *INIT_OUTFN_FLAKE_n* -  create output files and defines variables
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    EXTERNAL
00014 !!    --------
00015 !!
00016 !!
00017 !!    IMPLICIT ARGUMENTS
00018 !!    ------------------
00019 !!
00020 !!    REFERENCE
00021 !!    ---------
00022 !!
00023 !!
00024 !!    AUTHOR
00025 !!    ------
00026 !!      P. LeMoigne   *Meteo France*
00027 !!
00028 !!    MODIFICATIONS
00029 !!    -------------
00030 !!      Original    04-04  P. LeMoigne
00031 !!      Modified 06-10 by S. Faroux
00032 !-------------------------------------------------------------------------------
00033 !
00034 !*       0.    DECLARATIONS
00035 !              ------------
00036 
00037 USE MODD_OL_FILEID,    ONLY : XVAR_TO_FILEOUT, XID, XOUT
00038 USE MODD_DIAG_FLAKE_n
00039 USE MODD_FLAKE_n,      ONLY : LSBL, TTIME
00040 USE MODD_FLAKE_SBL_n,  ONLY : NLVL
00041 USE MODN_IO_OFFLINE,   ONLY : XTSTEP_OUTPUT
00042 !
00043 USE MODI_GET_DIM_FULL_n
00044 USE MODI_OL_DEFINE_DIM
00045 USE MODI_GET_DATE_OL
00046 USE MODI_CREATE_FILE
00047 USE MODI_DEF_VAR_NETCDF
00048 USE MODI_OL_WRITE_COORD
00049 !
00050 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00051 USE PARKIND1  ,ONLY : JPRB
00052 !
00053 IMPLICIT NONE
00054 include 'netcdf.inc'
00055 
00056  CHARACTER(LEN=6),  INTENT(IN) :: HPROGRAM
00057 INTEGER, INTENT(IN)           :: KLUOUT
00058 !
00059 !*       0.2   Declarations of local variables
00060 !              -------------------------------
00061 !
00062 INTEGER                          :: INI, ICANLVL
00063 INTEGER                          :: IDIM1
00064  CHARACTER(LEN=13),DIMENSION(1)   :: YUNIT1, YUNIT2
00065 REAL,DIMENSION(:), POINTER       :: ZX, ZY
00066 INTEGER, DIMENSION(:), POINTER   :: IDIMS, IDDIM
00067  CHARACTER(LEN=100), DIMENSION(:), POINTER :: YNAME_DIM
00068 !
00069  CHARACTER(LEN=40),DIMENSION(1)   :: YDATE
00070 INTEGER                          :: IFILE_ID, IVAR_ID
00071  CHARACTER(LEN=50)                :: YFILE
00072  CHARACTER(LEN=100), DIMENSION(1) :: YATT_TITLE, YATT
00073  CHARACTER(LEN=2)                 :: YLVLV
00074 INTEGER                          :: JLAYER
00075 INTEGER                          :: JRET
00076 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00077 !
00078 !-------------------------------------------------------------------------------
00079 
00080 ! 1. Compute output lenght dimension
00081 !-----------------------------------
00082 IF (LHOOK) CALL DR_HOOK('INIT_OUTFN_FLAKE_N',0,ZHOOK_HANDLE)
00083  CALL GET_DIM_FULL_n(INI)
00084 !
00085  CALL OL_DEFINE_DIM(HPROGRAM, KLUOUT, INI, IDIM1, YUNIT1, YUNIT2, &
00086                   ZX, ZY, IDIMS, IDDIM, YNAME_DIM)
00087  CALL GET_DATE_OL(TTIME,XTSTEP_OUTPUT,YDATE(1))
00088 !
00089 ! 4. Create output file for fluxes values
00090 !----------------------------------------------------------
00091 
00092 IF (ALLOCATED(XVAR_TO_FILEOUT)) DEALLOCATE(XVAR_TO_FILEOUT)
00093 IF (ALLOCATED(XID)) DEALLOCATE(XID)
00094 ALLOCATE(XVAR_TO_FILEOUT(0))
00095 ALLOCATE(XID(0))
00096 XOUT=0
00097 !
00098 YATT_TITLE(1)='units'
00099 !
00100 YFILE='WATFLUX_DIAGNOSTICS.OUT.nc'
00101  CALL CREATE_FILE(YFILE,IDIMS,YNAME_DIM,IFILE_ID,IDDIM)
00102 YATT='dimensionless'
00103 !
00104 IF (LCOEF) THEN
00105   YATT='W/s2'
00106   CALL DEF_VAR_NETCDF(IFILE_ID,'CD_WAT'   ,'Drag_Coefficient_For_Momentum   '   ,IDDIM,YATT_TITLE,YATT)
00107   YATT='W/s'
00108   CALL DEF_VAR_NETCDF(IFILE_ID,'CH_WAT'   ,'Drag_Coefficient_For_Heat       '   ,IDDIM,YATT_TITLE,YATT)
00109   YATT='W/s/K'
00110   CALL DEF_VAR_NETCDF(IFILE_ID,'CE_WAT'   ,'Drag_Coefficient_For_Evaporation'   ,IDDIM,YATT_TITLE,YATT)
00111   YATT='m'
00112   CALL DEF_VAR_NETCDF(IFILE_ID,'Z0_WAT'   ,'Roughness_Length_For_Momentum'   ,IDDIM,YATT_TITLE,YATT)
00113   YATT='m'
00114   CALL DEF_VAR_NETCDF(IFILE_ID,'Z0H_WAT'  ,'Roughness_Length_For_Heat'   ,IDDIM,YATT_TITLE,YATT)
00115 ENDIF
00116 !
00117 IF (LSURF_VARS) THEN
00118   YATT='kg/kg'
00119   CALL DEF_VAR_NETCDF(IFILE_ID,'QS_WAT'   ,'Surface_Humidity   '   ,IDDIM,YATT_TITLE,YATT)
00120 ENDIF
00121 !
00122 IF (N2M>0) THEN
00123   YATT='K'
00124   CALL DEF_VAR_NETCDF(IFILE_ID,'T2M_WAT' ,'2m_Temperature         '   ,IDDIM,YATT_TITLE,YATT)
00125   YATT='kg/kg'
00126   CALL DEF_VAR_NETCDF(IFILE_ID,'Q2M_WAT' ,'2m_Specific_Humidity   '   ,IDDIM,YATT_TITLE,YATT)
00127   YATT='(-)'
00128   CALL DEF_VAR_NETCDF(IFILE_ID,'HU2M_WAT','2m_Relative_Humidity   '   ,IDDIM,YATT_TITLE,YATT)
00129   YATT='m/s'
00130   CALL DEF_VAR_NETCDF(IFILE_ID,'ZON10M_WAT','10m_Zonal_wind       '   ,IDDIM,YATT_TITLE,YATT)
00131   YATT='m/s'
00132   CALL DEF_VAR_NETCDF(IFILE_ID,'MER10M_WAT','2m_Meridian_Wind     '   ,IDDIM,YATT_TITLE,YATT)
00133 ENDIF
00134 !
00135 IF (N2M>0) THEN
00136   YATT='-'
00137    CALL DEF_VAR_NETCDF(IFILE_ID,'RI_WAT'      ,'Averaged_Richardson_Number'                ,IDDIM,YATT_TITLE,YATT)
00138 ENDIF
00139 !
00140 IF(LSURF_BUDGET) THEN
00141   YATT='W/m2'
00142   CALL DEF_VAR_NETCDF(IFILE_ID,'RN_WAT'      ,'Averaged_Net_Radiation'                    ,IDDIM,YATT_TITLE,YATT)
00143   CALL DEF_VAR_NETCDF(IFILE_ID,'H_WAT'       ,'Averaged_Sensible_Heat_Flux'               ,IDDIM,YATT_TITLE,YATT)
00144   CALL DEF_VAR_NETCDF(IFILE_ID,'LE_WAT'      ,'Averaged_Latent_Heat_Flux  '               ,IDDIM,YATT_TITLE,YATT)
00145   CALL DEF_VAR_NETCDF(IFILE_ID,'GFLUX_WAT'   ,'Averaged_Ground_Heat_Flux  '               ,IDDIM,YATT_TITLE,YATT)
00146   CALL DEF_VAR_NETCDF(IFILE_ID,'SWD_WAT'     ,'Averaged_Downward_SW       '               ,IDDIM,YATT_TITLE,YATT)
00147   CALL DEF_VAR_NETCDF(IFILE_ID,'SWU_WAT'     ,'Averaged_Upward_SW         '               ,IDDIM,YATT_TITLE,YATT)
00148   CALL DEF_VAR_NETCDF(IFILE_ID,'LWD_WAT'     ,'Averaged_Downward_LW       '               ,IDDIM,YATT_TITLE,YATT)
00149   CALL DEF_VAR_NETCDF(IFILE_ID,'LWU_WAT'     ,'Averaged_Upward_LW         '               ,IDDIM,YATT_TITLE,YATT)
00150   CALL DEF_VAR_NETCDF(IFILE_ID,'FMU_WAT'     ,'Averaged_Zonal_Wind_Stress '               ,IDDIM,YATT_TITLE,YATT)
00151   CALL DEF_VAR_NETCDF(IFILE_ID,'FMV_WAT'     ,'Averaged_Merid_Wind_Stress '               ,IDDIM,YATT_TITLE,YATT)
00152 ENDIF
00153 !
00154  CALL OL_WRITE_COORD(YFILE,IFILE_ID,IDDIM,YATT_TITLE,YNAME_DIM,YUNIT1,YUNIT2,IDIM1,YDATE,ZX,ZY)
00155 !
00156 !YFILE='WATFLUX_DIAG_CUMUL.OUT.nc'
00157 !CALL CREATE_FILE(YFILE,IDIMS,YNAME_DIM,IFILE_ID,IDDIM)
00158 !YATT      (1)='dimensionless'
00159 !CALL DEF_VAR_NETCDF(IFILE_ID,'RNC_WAT'     ,'Averaged_Cumulated_Net_Radiation'        ,IDDIM,YATT_TITLE,YATT)
00160 !CALL DEF_VAR_NETCDF(IFILE_ID,'HC_WAT'      ,'Averaged_Cumulated_Sensible_Heat_Flux'   ,IDDIM,YATT_TITLE,YATT)
00161 !CALL DEF_VAR_NETCDF(IFILE_ID,'LEC_WAT'     ,'Averaged_Cumulated_Latent_Heat_Flux'     ,IDDIM,YATT_TITLE,YATT)
00162 !CALL DEF_VAR_NETCDF(IFILE_ID,'GFLUXC_WAT'   ,'Averaged_Cumulated_Ground_Heat_Flux'    ,IDDIM,YATT_TITLE,YATT)
00163 !CALL OL_WRITE_COORD(YFILE,IFILE_ID,IDDIM,YATT_TITLE,YNAME_DIM,YUNIT1,YUNIT2,IDIM1,YDATE,ZX,ZY)
00164 !
00165 !
00166 YFILE='WATFLUX_PROGNOSTIC.OUT.nc'
00167  CALL CREATE_FILE(YFILE,IDIMS,YNAME_DIM,IFILE_ID,IDDIM)
00168 YATT='dimensionless'
00169 !
00170 YATT='K'
00171  CALL DEF_VAR_NETCDF(IFILE_ID,'TS_WATER'   , 'Averaged_Water_S_Temperature'                 ,IDDIM,YATT_TITLE,YATT)
00172  CALL DEF_VAR_NETCDF(IFILE_ID,'T_MNW'      , 'Averaged_Water_Temperature  '                 ,IDDIM,YATT_TITLE,YATT)
00173  CALL DEF_VAR_NETCDF(IFILE_ID,'T_WML'      , 'Mixed_layer_wat_temperature '                 ,IDDIM,YATT_TITLE,YATT)
00174  CALL DEF_VAR_NETCDF(IFILE_ID,'T_BOT'      , 'Bottom_Water_Temperature    '                 ,IDDIM,YATT_TITLE,YATT)
00175 YATT='m' 
00176  CALL DEF_VAR_NETCDF(IFILE_ID,'H_ML'       , 'Mixed_Layer_Depth           '                 ,IDDIM,YATT_TITLE,YATT)
00177 YATT=' '
00178  CALL DEF_VAR_NETCDF(IFILE_ID,'CT'         , 'Termocline_Shape_Factor        '              ,IDDIM,YATT_TITLE,YATT)
00179 YATT='K'
00180  CALL DEF_VAR_NETCDF(IFILE_ID,'T_SNOW'     , 'Temperature at the air-snow interface'        ,IDDIM,YATT_TITLE,YATT)
00181  CALL DEF_VAR_NETCDF(IFILE_ID,'T_ICE'      , 'Ice_surface_Temperature  '                    ,IDDIM,YATT_TITLE,YATT)
00182  CALL DEF_VAR_NETCDF(IFILE_ID,'T_B1'       , 'Temperature of the upper layer of sediments ' ,IDDIM,YATT_TITLE,YATT)
00183 YATT='m'
00184  CALL DEF_VAR_NETCDF(IFILE_ID,'H_SNOW'     , 'Snow thickness'              ,IDDIM,YATT_TITLE,YATT)
00185  CALL DEF_VAR_NETCDF(IFILE_ID,'H_ICE'      , 'Ice thickness'               ,IDDIM,YATT_TITLE,YATT)
00186  CALL DEF_VAR_NETCDF(IFILE_ID,'H_B1'       , 'Thickness of the upper layer of sediments'     ,IDDIM,YATT_TITLE,YATT)
00187 !
00188 IF (LSBL) THEN
00189   DO JLAYER=1,ICANLVL
00190     WRITE(YLVLV,'(i2.2)') JLAYER
00191     CALL DEF_VAR_NETCDF(IFILE_ID,'WAT_SBL_Z'//YLVLV,'Canopy height',   IDDIM,YATT_TITLE,(/'m'/))
00192     CALL DEF_VAR_NETCDF(IFILE_ID,'WAT_SBL_U'//YLVLV,'Canopy wind',     IDDIM,YATT_TITLE,(/'m/s'/))
00193     CALL DEF_VAR_NETCDF(IFILE_ID,'WAT_SBL_T'//YLVLV,'Canopy temp',     IDDIM,YATT_TITLE,(/'K'/))
00194     CALL DEF_VAR_NETCDF(IFILE_ID,'WAT_SBL_Q'//YLVLV,'Canopy humidity', IDDIM,YATT_TITLE,(/'kg/m3'/))
00195     CALL DEF_VAR_NETCDF(IFILE_ID,'WAT_SBL_E'//YLVLV,'Canopy TKE',      IDDIM,YATT_TITLE,(/'m2/s2'/))
00196   END DO
00197 ENDIF
00198 !
00199  CALL OL_WRITE_COORD(YFILE,IFILE_ID,IDDIM,YATT_TITLE,YNAME_DIM,YUNIT1,YUNIT2,IDIM1,YDATE,ZX,ZY)
00200 !
00201 IF (LHOOK) CALL DR_HOOK('INIT_OUTFN_FLAKE_N',1,ZHOOK_HANDLE)
00202 !
00203 END SUBROUTINE INIT_OUTFN_FLAKE_n