SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE WRITESURF_SNAP_n(HPROGRAM) 00003 ! ####################################################################### 00004 ! 00005 !----------------------------------------------------------------------------- 00006 ! 00007 !* 0. DECLARATIONS 00008 ! 00009 USE MODI_GET_LUOUT 00010 USE MODI_WRITE_SURF 00011 ! 00012 USE MODD_CH_SNAP_n 00013 ! 00014 ! 00015 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00016 USE PARKIND1 ,ONLY : JPRB 00017 ! 00018 USE MODI_ABOR1_SFX 00019 ! 00020 IMPLICIT NONE 00021 ! 00022 CHARACTER(LEN=6) :: HPROGRAM 00023 ! 00024 !* 0.2 declarations of local variables 00025 ! 00026 INTEGER :: IRESP ! I/O error code 00027 CHARACTER (LEN=16) :: YRECFM ! article name 00028 CHARACTER (LEN=100) :: YCOMMENT ! comment 00029 INTEGER :: ILUOUT ! Unit number for prints 00030 INTEGER :: JSPEC ! Loop index for emission species 00031 INTEGER :: JSNAP ! Loop index for SNAP categories 00032 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00033 !------------------------------------------------------------------------------- 00034 IF (LHOOK) CALL DR_HOOK('WRITESURF_SNAP_n',0,ZHOOK_HANDLE) 00035 CALL GET_LUOUT(HPROGRAM,ILUOUT) 00036 ! 00037 !------------------------------------------------------------------------------- 00038 ! 00039 YRECFM='EMISPEC_NBR' 00040 CALL WRITE_SURF(HPROGRAM,YRECFM,NEMIS_NBR,IRESP,YCOMMENT) 00041 YRECFM='SNAP_NBR' 00042 CALL WRITE_SURF(HPROGRAM,YRECFM,NEMIS_SNAP,IRESP,YCOMMENT) 00043 YRECFM='SNAP_TIME' 00044 CALL WRITE_SURF(HPROGRAM,YRECFM,CSNAP_TIME_REF,IRESP,YCOMMENT) 00045 ! 00046 IF (CSNAP_TIME_REF=='LEGAL') THEN 00047 YRECFM='LEGALTIME' 00048 CALL WRITE_SURF(HPROGRAM,YRECFM,XDELTA_LEGAL_TIME(:),IRESP,YCOMMENT) 00049 END IF 00050 !------------------------------------------------------------------------------- 00051 ! 00052 DO JSPEC=1,NEMIS_NBR 00053 ! Writes the name of species 00054 WRITE(YRECFM,'("EMISNAME",I3.3)') JSPEC 00055 YCOMMENT = CEMIS_COMMENT(JSPEC) 00056 CALL WRITE_SURF(HPROGRAM,YRECFM,CEMIS_NAME(JSPEC),IRESP,YCOMMENT) 00057 ! 00058 ! Writes the temporal profiles of all snaps 00059 YRECFM = "EMIS_"//TRIM(CEMIS_NAME(JSPEC))//"_M" 00060 CALL WRITE_SURF(HPROGRAM,YRECFM,XSNAP_MONTHLY(:,:,JSPEC),IRESP,YCOMMENT,HDIR='-') 00061 YRECFM = "EMIS_"//TRIM(CEMIS_NAME(JSPEC))//"_D" 00062 CALL WRITE_SURF(HPROGRAM,YRECFM,XSNAP_DAILY(:,:,JSPEC),IRESP,YCOMMENT,HDIR='-') 00063 YRECFM = "EMIS_"//TRIM(CEMIS_NAME(JSPEC))//"_H" 00064 CALL WRITE_SURF(HPROGRAM,YRECFM,XSNAP_HOURLY(:,:,JSPEC),IRESP,YCOMMENT,HDIR='-') 00065 ! Writes the potential emission of species for each snap 00066 DO JSNAP=1,NEMIS_SNAP 00067 WRITE(YRECFM,'("SNAP",I2.2,"_",A3)') JSNAP,CEMIS_NAME(JSPEC) 00068 CALL WRITE_SURF(HPROGRAM,YRECFM,XEMIS_FIELDS_SNAP(:,JSNAP,JSPEC),IRESP,YCOMMENT) 00069 END DO 00070 ! 00071 END DO 00072 ! 00073 !------------------------------------------------------------------------------- 00074 IF (LHOOK) CALL DR_HOOK('WRITESURF_SNAP_n',1,ZHOOK_HANDLE) 00075 !------------------------------------------------------------------------------- 00076 ! 00077 END SUBROUTINE WRITESURF_SNAP_n