SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
write_file_isbamap.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 !-----------------------------------------------------------------
6 ! ##########################
7  SUBROUTINE write_file_isbamap (UG, &
8  kunit,pvar,ki)
9 ! ##########################
10 !
11 !!
12 !! PURPOSE
13 !! -------
14 !
15 !
16 !!** METHOD
17 !! ------
18 !
19 !! EXTERNAL
20 !! --------
21 !!
22 !! none
23 !!
24 !! IMPLICIT ARGUMENTS
25 !! ------------------
26 !!
27 !! REFERENCE
28 !! ---------
29 !!
30 !! AUTHOR
31 !! ------
32 !!
33 !! K. Chancibault * Meteo-France *
34 !!
35 !! MODIFICATIONS
36 !! -------------
37 !!
38 !! Original 25/01/2005
39 !! 03/2014 (E. Artinian) manages the option CGRID='IGN'
40 !-------------------------------------------------------------------------------
41 !
42 !* 0. DECLARATIONS
43 ! ------------
44 !
45 !
46 !
48 !
49 USE modd_topodyn
50 USE modd_surf_par, ONLY : xundef
51 !
55 !
56 USE modi_abor1_sfx
57 !
58 USE yomhook ,ONLY : lhook, dr_hook
59 USE parkind1 ,ONLY : jprb
60 !
61 IMPLICIT NONE
62 !
63 !* 0.1 declarations of arguments
64 !
65 !
66 TYPE(surf_atm_grid_t), INTENT(INOUT) :: ug
67 !
68 INTEGER, INTENT(IN) :: kunit ! file unit
69 REAL, DIMENSION(:), INTENT(IN) :: pvar ! variable to write in the file
70 INTEGER, INTENT(IN) :: ki ! Grid dimensions
71 !
72 !
73 !* 0.2 declarations of local variables
74 INTEGER :: jj,ji,il
75 INTEGER :: ini,ilambert
76 INTEGER :: jindex ! reference number of the pixel
77 REAL :: zout
78 REAL :: zmax,zmin
79 REAL, DIMENSION(KI) :: zxi, zyi ! natural coordinates of ISBA grid (conformal projection)
80 REAL, DIMENSION(KI) :: zxn, zyn ! isba nodes coordinates in the Lambert II coordinates - Eram rajout
81 REAL, DIMENSION(KI) :: zdxi, zdyi ! Isba grid resolution in the conformal projection
82 REAL, DIMENSION(KI) :: zdx, zdy
83 INTEGER :: iimax,ijmax
84 REAL :: zlonmin,zlonmax,zlatmin,zlatmax
85 REAL(KIND=JPRB) :: zhook_handle
86 !-------------------------------------------------------------------------------
87 IF (lhook) CALL dr_hook('WRITE_FILE_ISBAMAP',0,zhook_handle)
88 !
89 !* 0. Initialization:
90 ! ---------------
91 !
92 IF(ug%CGRID.EQ.'CONF PROJ') THEN
93  CALL get_gridtype_conf_proj(ug%XGRID_PAR,px=zxi,py=zyi,kimax=iimax,kjmax=ijmax,pdx=zdxi)
94 ELSE IF(ug%CGRID.EQ.'LONLAT REG') THEN
95  CALL get_gridtype_lonlat_reg(ug%XGRID_PAR,plonmin=zlonmin,plonmax=zlonmax, &
96  platmin=zlatmin,platmax=zlatmax,klon=iimax,klat=ijmax, &
97  kl=il,plon=zxi,plat=zyi)
98  !
99  zdxi(:)=(zlonmax-zlonmin)/(iimax-1)
100  zdyi(:)=(zlatmax-zlatmin)/(ijmax-1)
101 ELSE IF (ug%CGRID=='IGN') THEN
102  CALL get_gridtype_ign(ug%XGRID_PAR,klambert=ilambert,kl=ini,px=zxn,py=zyn,pdx=zdx,pdy=zdy)
103  ini=ki
104  zdxi(:)=zdx(:)
105  zdyi(:)=zdy(:)
106 ELSE
107  CALL abor1_sfx("WRITE_FILE_ISBAMAP: TYPE DE GRILLE NON GERE PAR LE CODE")
108 ENDIF
109 !
110 zmax = maxval(pvar)
111 zmin = minval(pvar)
112 zout = xundef
113 !
114 DO jj=1,5
115  WRITE(kunit,*)
116 ENDDO
117 !
118 IF(ug%CGRID.EQ.'IGN') THEN
119 
120  WRITE(kunit,*) zxn(1)
121  WRITE(kunit,*) zyn(1)
122  WRITE(kunit,*) ini
123  WRITE(kunit,*) zout
124  WRITE(kunit,*) zdxi(1)
125  WRITE(kunit,*) zmin
126  WRITE(kunit,*) zmax
127  !
128  DO jj = 1,ini
129  WRITE(kunit,*) pvar(jj)
130  ENDDO
131 ELSE
132  WRITE(kunit,*) zxi(1)
133  WRITE(kunit,*) zyi(1)
134  WRITE(kunit,*) iimax
135  WRITE(kunit,*) ijmax
136  WRITE(kunit,*) zout
137  WRITE(kunit,*) zdxi(1)
138  WRITE(kunit,*) zmin
139  WRITE(kunit,*) zmax
140 !
141  DO jj = 1,ijmax
142  DO ji = 1,iimax
143  jindex = (jj-1) * iimax + ji
144  WRITE(kunit,*) pvar(jindex)
145  ENDDO
146  ENDDO
147 ENDIF
148 !
149 IF (lhook) CALL dr_hook('WRITE_FILE_ISBAMAP',1,zhook_handle)
150 !
151 END SUBROUTINE write_file_isbamap
subroutine write_file_isbamap(UG, KUNIT, PVAR, KI)
subroutine get_gridtype_ign(PGRID_PAR, KLAMBERT, KL, PX, PY, PDX, PDY, KDIMX, KDIMY, PXALL, PYALL)
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:6
subroutine get_gridtype_conf_proj(PGRID_PAR, PLAT0, PLON0, PRPK, PBETA, PLATOR, PLONOR, KIMAX, KJMAX, PX, PY, PDX, PDY, KL)
subroutine get_gridtype_lonlat_reg(PGRID_PAR, PLONMIN, PLONMAX, PLATMIN, PLATMAX, KLON, KLAT, KL, PLON, PLAT)