File indexing completed on 2024-12-17 18:37:23 UTC
view on githubraw file Latest commit 87dd4f7d on 2024-01-17 18:17:24 UTC
87dd4f7d5f Oliv*0001 #include "OASIM_OPTIONS.h"
0002 #ifdef ALLOW_EXF
0003 #include "EXF_OPTIONS.h"
0004 #endif
0005
0006
0007
0008
0009
0010 SUBROUTINE OASIM_EXF_LOAD( mytime, myiter, mythid )
0011
0012
0013
0014
0015
0016 IMPLICIT NONE
0017 #include "SIZE.h"
0018 #include "GRID.h"
0019 #include "EEPARAMS.h"
0020 #include "PARAMS.h"
0021 #ifdef ALLOW_EXF
0022 #include "EXF_INTERP_SIZE.h"
0023 #endif
0024 #include "OASIM_SIZE.h"
0025 #include "OASIM_EXF_PARAMS.h"
0026 #include "OASIM_FIELDS.h"
0027
0028
0029 _RL mytime
0030 integer myiter
0031 integer mythid
0032
0033
0034 #ifdef ALLOW_OASIM
0035 #ifdef ALLOW_EXF
0036
0037
0038
0039 INTEGER ILNBLNK
0040 EXTERNAL ILNBLNK
0041
0042 CHARACTER*(MAX_LEN_FNAM) fnam
0043 INTEGER l, il
0044
0045
0046
0047 il = ILNBLNK( aerTaufile )
0048 DO l=1,nlt
0049 WRITE(fnam,'(A,I3.3)') aerTauFile(1:il), l
0050 CALL oasim_set_fld (
0051 & 'aerTau', fnam, aerTaumask,
0052 & aerTauStartTime, aerTauperiod, aerTauRepCycle,
0053 & oasim_timeInterp, aerTau_inscal(l),
0054 & aerTau_exfremo_intercept(l), aerTau_exfremo_slope(l),
0055 & taua(1-OLx,1-OLy,1,1,l),
0056 & aerTau0(1-OLx,1-OLy,1,1,l),
0057 & aerTau1(1-OLx,1-OLy,1,1,l),
0058 #ifdef USE_EXF_INTERPOLATION
0059 & aerTau_lon0, aerTau_lon_inc,
0060 & aerTau_lat0, aerTau_lat_inc,
0061 & aerTau_nlon, aerTau_nlat, xC, yC, aerTau_interpMethod,
0062 #endif
0063 & mytime, myiter, mythid )
0064 ENDDO
0065
0066 il = ILNBLNK( asympfile )
0067 DO l=1,nlt
0068 WRITE(fnam,'(A,I3.3)') asympFile(1:il), l
0069 CALL oasim_set_fld (
0070 & 'asymp', fnam, asympmask,
0071 & asympStartTime, asympperiod, asympRepCycle,
0072 & oasim_timeInterp, asymp_inscal(l),
0073 & asymp_exfremo_intercept(l), asymp_exfremo_slope(l),
0074 & asymp(1-OLx,1-OLy,1,1,l),
0075 & asymp0(1-OLx,1-OLy,1,1,l),
0076 & asymp1(1-OLx,1-OLy,1,1,l),
0077 #ifdef USE_EXF_INTERPOLATION
0078 & asymp_lon0, asymp_lon_inc,
0079 & asymp_lat0, asymp_lat_inc,
0080 & asymp_nlon, asymp_nlat, xC, yC, asymp_interpMethod,
0081 #endif
0082 & mytime, myiter, mythid )
0083 ENDDO
0084
0085 il = ILNBLNK( ssalbfile )
0086 DO l=1,nlt
0087 WRITE(fnam,'(A,I3.3)') ssalbFile(1:il), l
0088 CALL oasim_set_fld (
0089 & 'ssalb', fnam, ssalbmask,
0090 & ssalbStartTime, ssalbperiod, ssalbRepCycle,
0091 & oasim_timeInterp, ssalb_inscal(l),
0092 & ssalb_exfremo_intercept(l), ssalb_exfremo_slope(l),
0093 & ssalb(1-OLx,1-OLy,1,1,l),
0094 & ssalb0(1-OLx,1-OLy,1,1,l),
0095 & ssalb1(1-OLx,1-OLy,1,1,l),
0096 #ifdef USE_EXF_INTERPOLATION
0097 & ssalb_lon0, ssalb_lon_inc,
0098 & ssalb_lat0, ssalb_lat_inc,
0099 & ssalb_nlon, ssalb_nlat, xC, yC, ssalb_interpMethod,
0100 #endif
0101 & mytime, myiter, mythid )
0102 ENDDO
0103
0104 call oasim_set_fld(
0105 & 'cldcov', cldcovfile, cldcovmask,
0106 & cldcovStartTime, cldcovperiod, cldcovRepCycle,
0107 & oasim_timeInterp, cldcov_inscal,
0108 & cldcov_exfremo_intercept, cldcov_exfremo_slope,
0109 & ccov, cldcov0, cldcov1,
0110 #ifdef USE_EXF_INTERPOLATION
0111 & cldcov_lon0, cldcov_lon_inc,
0112 & cldcov_lat0, cldcov_lat_inc,
0113 & cldcov_nlon, cldcov_nlat, xC, yC, cldcov_interpMethod,
0114 #endif
0115 & mytime, myiter, mythid )
0116
0117 call oasim_set_fld(
0118 & 'cldlwp', cldlwpfile, cldlwpmask,
0119 & cldlwpStartTime, cldlwpperiod, cldlwpRepCycle,
0120 & oasim_timeInterp, cldlwp_inscal,
0121 & cldlwp_exfremo_intercept, cldlwp_exfremo_slope,
0122 & rlwp, cldlwp0, cldlwp1,
0123 #ifdef USE_EXF_INTERPOLATION
0124 & cldlwp_lon0, cldlwp_lon_inc,
0125 & cldlwp_lat0, cldlwp_lat_inc,
0126 & cldlwp_nlon, cldlwp_nlat, xC, yC, cldlwp_interpMethod,
0127 #endif
0128 & mytime, myiter, mythid )
0129
0130 call oasim_set_fld(
0131 & 'cldre', cldrefile, cldremask,
0132 & cldreStartTime, cldreperiod, cldreRepCycle,
0133 & oasim_timeInterp, cldre_inscal,
0134 & cldre_exfremo_intercept, cldre_exfremo_slope,
0135 & cdre, cldre0, cldre1,
0136 #ifdef USE_EXF_INTERPOLATION
0137 & cldre_lon0, cldre_lon_inc,
0138 & cldre_lat0, cldre_lat_inc,
0139 & cldre_nlon, cldre_nlat, xC, yC, cldre_interpMethod,
0140 #endif
0141 & mytime, myiter, mythid )
0142
0143 call oasim_set_fld(
0144 & 'pres', presfile, presmask,
0145 & presStartTime, presperiod, presRepCycle,
0146 & oasim_timeInterp, pres_inscal,
0147 & pres_exfremo_intercept, pres_exfremo_slope,
0148 & slp, pres0, pres1,
0149 #ifdef USE_EXF_INTERPOLATION
0150 & pres_lon0, pres_lon_inc,
0151 & pres_lat0, pres_lat_inc,
0152 & pres_nlon, pres_nlat, xC, yC, pres_interpMethod,
0153 #endif
0154 & mytime, myiter, mythid )
0155
0156 call oasim_set_fld(
0157 & 'oawind', oawindfile, oawindmask,
0158 & oawindStartTime, oawindperiod, oawindRepCycle,
0159 & oasim_timeInterp, oawind_inscal,
0160 & oawind_exfremo_intercept, oawind_exfremo_slope,
0161 & wsm, oawind0, oawind1,
0162 #ifdef USE_EXF_INTERPOLATION
0163 & oawind_lon0, oawind_lon_inc,
0164 & oawind_lat0, oawind_lat_inc,
0165 & oawind_nlon, oawind_nlat, xC, yC, oawind_interpMethod,
0166 #endif
0167 & mytime, myiter, mythid )
0168
0169 call oasim_set_fld(
0170 & 'relhum', relhumfile, relhummask,
0171 & relhumStartTime, relhumperiod, relhumRepCycle,
0172 & oasim_timeInterp, relhum_inscal,
0173 & relhum_exfremo_intercept, relhum_exfremo_slope,
0174 & rh, relhum0, relhum1,
0175 #ifdef USE_EXF_INTERPOLATION
0176 & relhum_lon0, relhum_lon_inc,
0177 & relhum_lat0, relhum_lat_inc,
0178 & relhum_nlon, relhum_nlat, xC, yC, relhum_interpMethod,
0179 #endif
0180 & mytime, myiter, mythid )
0181
0182 call oasim_set_fld(
0183 & 'ozone', ozonefile, ozonemask,
0184 & ozoneStartTime, ozoneperiod, ozoneRepCycle,
0185 & oasim_timeInterp, ozone_inscal,
0186 & ozone_exfremo_intercept, ozone_exfremo_slope,
0187 & oz, ozone0, ozone1,
0188 #ifdef USE_EXF_INTERPOLATION
0189 & ozone_lon0, ozone_lon_inc,
0190 & ozone_lat0, ozone_lat_inc,
0191 & ozone_nlon, ozone_nlat, xC, yC, ozone_interpMethod,
0192 #endif
0193 & mytime, myiter, mythid )
0194
0195 call oasim_set_fld(
0196 & 'wv', wvfile, wvmask,
0197 & wvStartTime, wvperiod, wvRepCycle,
0198 & oasim_timeInterp, wv_inscal,
0199 & wv_exfremo_intercept, wv_exfremo_slope,
0200 & wv, wv0, wv1,
0201 #ifdef USE_EXF_INTERPOLATION
0202 & wv_lon0, wv_lon_inc,
0203 & wv_lat0, wv_lat_inc,
0204 & wv_nlon, wv_nlat, xC, yC, wv_interpMethod,
0205 #endif
0206 & mytime, myiter, mythid )
0207
0208 _EXCH_XY_RL( taua, myThid )
0209 _EXCH_XY_RL( asymp, myThid )
0210 _EXCH_XY_RL( ssalb, myThid )
0211 _EXCH_XY_RL( ccov, myThid )
0212 _EXCH_XY_RL( rlwp, myThid )
0213 _EXCH_XY_RL( cdre, myThid )
0214 _EXCH_XY_RL( slp, myThid )
0215 _EXCH_XY_RL( wsm, myThid )
0216 _EXCH_XY_RL( rh, myThid )
0217 _EXCH_XY_RL( oz, myThid )
0218 _EXCH_XY_RL( wv, myThid )
0219
0220 #endif /* ALLOW_EXF */
0221 #endif /* ALLOW_OASIM */
0222
0223 RETURN
0224 END