1 | MODULE fld_def |
---|
2 | !!===================================================================== |
---|
3 | !! *** MODULE fld_def *** |
---|
4 | !! IOM variables definitions |
---|
5 | !!==================================================================== |
---|
6 | !!-------------------------------------------------------------------- |
---|
7 | !!--------------------------------------------------------------------------------- |
---|
8 | !! NEMO/OPA 3.3 , NEMO Consortium (2010) |
---|
9 | !! $Id: iom_def.F90 3680 2012-11-27 14:42:24Z rblod $ |
---|
10 | !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) |
---|
11 | !!--------------------------------------------------------------------------------- |
---|
12 | |
---|
13 | USE par_kind |
---|
14 | |
---|
15 | IMPLICIT NONE |
---|
16 | PRIVATE |
---|
17 | |
---|
18 | INTEGER, PUBLIC, PARAMETER :: jp_wndi = 1 |
---|
19 | INTEGER, PUBLIC, PARAMETER :: jp_wndj = 2 |
---|
20 | INTEGER, PUBLIC, PARAMETER :: jp_otx1 = 3 ! 3 atmosphere-ocean stress components on grid 1 |
---|
21 | INTEGER, PUBLIC, PARAMETER :: jp_oty1 = 4 ! |
---|
22 | INTEGER, PUBLIC, PARAMETER :: jp_otz1 = 5 ! |
---|
23 | INTEGER, PUBLIC, PARAMETER :: jp_otx2 = 6 ! 3 atmosphere-ocean stress components on grid 2 |
---|
24 | INTEGER, PUBLIC, PARAMETER :: jp_oty2 = 7 ! |
---|
25 | INTEGER, PUBLIC, PARAMETER :: jp_otz2 = 8 ! |
---|
26 | INTEGER, PUBLIC, PARAMETER :: jp_itx1 = 9 ! 3 atmosphere-ice stress components on grid 1 |
---|
27 | INTEGER, PUBLIC, PARAMETER :: jp_ity1 = 10 ! |
---|
28 | INTEGER, PUBLIC, PARAMETER :: jp_itz1 = 11 ! |
---|
29 | INTEGER, PUBLIC, PARAMETER :: jp_itx2 = 12 ! 3 atmosphere-ice stress components on grid 2 |
---|
30 | INTEGER, PUBLIC, PARAMETER :: jp_ity2 = 13 ! |
---|
31 | INTEGER, PUBLIC, PARAMETER :: jp_itz2 = 14 ! |
---|
32 | INTEGER, PUBLIC, PARAMETER :: jp_qsroce = 15 ! Qsr above the ocean |
---|
33 | INTEGER, PUBLIC, PARAMETER :: jp_qsrice = 16 ! Qsr above the ice |
---|
34 | INTEGER, PUBLIC, PARAMETER :: jp_qsrmix = 17 |
---|
35 | INTEGER, PUBLIC, PARAMETER :: jp_qnsoce = 18 ! Qns above the ocean |
---|
36 | INTEGER, PUBLIC, PARAMETER :: jp_qnsice = 19 ! Qns above the ice |
---|
37 | INTEGER, PUBLIC, PARAMETER :: jp_qnsmix = 20 |
---|
38 | INTEGER, PUBLIC, PARAMETER :: jp_qlw = 21 ! |
---|
39 | INTEGER, PUBLIC, PARAMETER :: jp_tair = 22 ! |
---|
40 | INTEGER, PUBLIC, PARAMETER :: jp_humi = 23 ! |
---|
41 | INTEGER, PUBLIC, PARAMETER :: jp_prec = 24 ! |
---|
42 | INTEGER, PUBLIC, PARAMETER :: jp_rain = 25 ! total liquid precipitation (rain) |
---|
43 | INTEGER, PUBLIC, PARAMETER :: jp_snow = 26 ! solid precipitation over the ocean (snow) |
---|
44 | INTEGER, PUBLIC, PARAMETER :: jp_tevp = 27 ! total evaporation |
---|
45 | INTEGER, PUBLIC, PARAMETER :: jp_ievp = 28 ! solid evaporation (sublimation) |
---|
46 | INTEGER, PUBLIC, PARAMETER :: jp_tdif = 29 ! wind stress module |
---|
47 | INTEGER, PUBLIC, PARAMETER :: jp_taum = 30 ! wind stress module |
---|
48 | INTEGER, PUBLIC, PARAMETER :: jp_w10m = 31 ! 10m wind |
---|
49 | INTEGER, PUBLIC, PARAMETER :: jp_qtot = 32 |
---|
50 | INTEGER, PUBLIC, PARAMETER :: jp_sbpr = 33 ! sublimation - liquid precipitation - solid precipitation |
---|
51 | INTEGER, PUBLIC, PARAMETER :: jp_semp = 34 ! solid freshwater budget (sublimation - snow) |
---|
52 | INTEGER, PUBLIC, PARAMETER :: jp_oemp = 35 ! ocean freshwater budget (evap - precip) |
---|
53 | INTEGER, PUBLIC, PARAMETER :: jp_rnf = 36 ! runoffs |
---|
54 | INTEGER, PUBLIC, PARAMETER :: jp_cal = 37 ! calving |
---|
55 | INTEGER, PUBLIC, PARAMETER :: jp_topm = 38 ! topmeltn |
---|
56 | INTEGER, PUBLIC, PARAMETER :: jp_botm = 39 ! botmeltn |
---|
57 | INTEGER, PUBLIC, PARAMETER :: jp_dqnsdt = 40 ! d(Q non solar)/d(temperature) |
---|
58 | INTEGER, PUBLIC, PARAMETER :: jp_co2 = 41 |
---|
59 | INTEGER, PUBLIC, PARAMETER :: jpfld = 41 ! total number of fields received |
---|
60 | |
---|
61 | INTEGER, PUBLIC :: OASIS_Rcv = 1 !: return code if received field |
---|
62 | INTEGER, PUBLIC :: OASIS_idle = 0 !: return code if nothing done by oasis **USE FOR FLDREAD TOO?** |
---|
63 | |
---|
64 | TYPE, PUBLIC :: FLD_N !: Namelist field informations |
---|
65 | CHARACTER(len = 256) :: clname ! generic name of the NetCDF flux file |
---|
66 | CHARACTER(len = 32) :: clvgrd ! grids on which is located the fields |
---|
67 | CHARACTER(len = 32) :: clcat ! multiple ice categories strategy |
---|
68 | INTEGER :: nfreqh ! frequency of each flux file |
---|
69 | CHARACTER(len = 34) :: clvar ! generic name of the variable in the NetCDF flux file |
---|
70 | LOGICAL :: ln_tint ! time interpolation or not (T/F) |
---|
71 | LOGICAL :: ln_clim ! climatology or not (T/F) |
---|
72 | CHARACTER(len = 8) :: cltype ! type of data file 'daily', 'monthly' or yearly' |
---|
73 | CHARACTER(len = 34) :: wname ! generic name of a NetCDF weights file to be used, blank if not |
---|
74 | CHARACTER(len = 34) :: vcomp ! symbolic component name if a vector that needs rotation |
---|
75 | ! ! a string starting with "U" or "V" for each component |
---|
76 | ! ! chars 2 onwards identify which components go together |
---|
77 | END TYPE FLD_N |
---|
78 | |
---|
79 | TYPE, PUBLIC :: FLD !: Input field related variables |
---|
80 | CHARACTER(len = 256) :: clrootname ! generic name of the NetCDF file |
---|
81 | CHARACTER(len = 256) :: clname ! current name of the NetCDF file |
---|
82 | LOGICAL :: loasis ! field from OASIS or not (T/F) |
---|
83 | LOGICAL :: lfile ! field from file or not (T/F) |
---|
84 | CHARACTER(len = 32) :: clvgrd ! grids on which is located the fields |
---|
85 | INTEGER :: nct ! number of ice categories |
---|
86 | INTEGER :: nfreqh ! frequency of each flux file |
---|
87 | CHARACTER(len = 34) :: clvar ! generic name of the variable in the NetCDF flux file |
---|
88 | LOGICAL :: ln_tint ! time interpolation or not (T/F) |
---|
89 | LOGICAL :: ln_clim ! climatology or not (T/F) |
---|
90 | CHARACTER(len = 8) :: cltype ! type of data file 'daily', 'monthly' or yearly' |
---|
91 | INTEGER :: num ! iom id of the jpfld files to be read |
---|
92 | INTEGER , DIMENSION(2) :: nrec_b ! before record (1: index, 2: second since Jan. 1st 00h of nit000 year) |
---|
93 | INTEGER , DIMENSION(2) :: nrec_a ! after record (1: index, 2: second since Jan. 1st 00h of nit000 year) |
---|
94 | REAL(wp) , ALLOCATABLE, DIMENSION(:,:,: ) :: fnow ! input fields interpolated to now time step |
---|
95 | REAL(wp) , ALLOCATABLE, DIMENSION(:,:,:,:) :: fdta ! 2 consecutive record of input fields |
---|
96 | CHARACTER(len = 256) :: wgtname ! current name of the NetCDF weight file acting as a key |
---|
97 | ! ! into the WGTLIST structure |
---|
98 | CHARACTER(len = 34) :: vcomp ! symbolic name for a vector component that needs rotation |
---|
99 | REAL(wp) :: nsgn ! Control of the sign change |
---|
100 | LOGICAL, DIMENSION(2) :: rotn ! flag to indicate whether before/after field has been rotated |
---|
101 | INTEGER :: nreclast ! last record to be read in the current file |
---|
102 | INTEGER, DIMENSION(9) :: nid ! OASIS id of the field (no more than 9 categories) |
---|
103 | INTEGER :: ninfo ! OASIS recv info |
---|
104 | END TYPE FLD |
---|
105 | |
---|
106 | !!===================================================================== |
---|
107 | END MODULE fld_def |
---|