New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
fld_def.F90 in branches/UKMO/dev_3841_sbc/NEMOGCM/NEMO/OPA_SRC/SBC – NEMO

source: branches/UKMO/dev_3841_sbc/NEMOGCM/NEMO/OPA_SRC/SBC/fld_def.F90 @ 4827

Last change on this file since 4827 was 4827, checked in by charris, 9 years ago

Some demonstration code changes.

File size: 7.7 KB
Line 
1MODULE 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   !!=====================================================================
107END MODULE fld_def
Note: See TracBrowser for help on using the repository browser.