47
48
52# if defined FORWARD_READ && defined SOLVE3D
54# endif
63
64# ifdef ANALYTICAL
66# endif
69# ifdef SOLVE3D
71# endif
72# ifdef DISTRIBUTE
73# if defined WET_DRY
75# endif
77# ifdef SOLVE3D
79# endif
80# endif
82
83 implicit none
84
85
86
87 integer, intent(in) :: ng, tile
88 integer, intent(in) :: LBi, UBi, LBj, UBj
89 integer, intent(in) :: IminS, ImaxS, JminS, JmaxS
90
91
92
93 logical :: SetBC
94 logical :: update = .false.
95# if defined WET_DRY
96 logical :: bry_update
97# endif
98
99 integer :: ILB, IUB, JLB, JUB
100 integer :: i, ic, itrc, j, k, my_tile
101
102 real(r8) :: cff, cff1, cff2
103
104 character (len=*), parameter :: MyFile = &
105 & __FILE__//", tl_set_data_tile"
106
107# include "set_bounds.h"
108
109
110
111 my_tile=-1
112 ilb=
bounds(ng)%LBi(my_tile)
113 iub=
bounds(ng)%UBi(my_tile)
114 jlb=
bounds(ng)%LBj(my_tile)
115 jub=
bounds(ng)%UBj(my_tile)
116
117# ifdef SOLVE3D
118
119# ifdef CLOUDS
120
121
122
123
124
125
126
127# ifdef ANA_CLOUD
129# else
131 & lbi, ubi, lbj, ubj, &
134 & update)
136# endif
137# endif
138
139# if (defined BULK_FLUXES && !defined FORWARD_FLUXES) || \
140 defined ecosim || \
141 (defined shortwave && defined
ana_srflux && defined albedo)
142
143
144
145
146
147# ifdef ANA_TAIR
149# else
151 & lbi, ubi, lbj, ubj, &
154 & update)
156# endif
157# endif
158
159# if (defined BULK_FLUXES && !defined FORWARD_FLUXES) || \
160 defined ecosim || \
161 (defined shortwave && defined
ana_srflux && defined albedo)
162
163
164
165
166
167# ifdef ANA_HUMIDITY
169# else
171 & lbi, ubi, lbj, ubj, &
174 & update)
176# endif
177# endif
178
179# ifdef SHORTWAVE
180
181
182
183
184
185# ifdef ANA_SRFLUX
187# else
189 & lbi, ubi, lbj, ubj, &
192 & update)
194# endif
195
196# if defined DIURNAL_SRFLUX && !defined FORWARD_FLUXES
197
198
199
200
202# endif
203# endif
204
205# if (defined BULK_FLUXES && !defined FORWARD_FLUXES) && \
206
207
208
209
210
211
213 & lbi, ubi, lbj, ubj, &
216 & update)
218# endif
219
220# if defined LONGWAVE_OUT && \
221 (defined bulk_fluxes &&
222
223
224
225
226
228 & lbi, ubi, lbj, ubj, &
231 & update)
233# endif
234
235# if (defined BULK_FLUXES && !defined FORWARD_FLUXES) || \
236 defined ecosim
237
238
239
240
241
242# ifdef ANA_WINDS
244# else
246 & lbi, ubi, lbj, ubj, &
249 & update)
251
253 & lbi, ubi, lbj, ubj, &
256 & update)
258
259# ifdef CURVGRID
260
261
262
263
267 DO j=jstrr,jendr
268 DO i=istrr,iendr
269 cff1=
forces(ng)%Uwind(i,j)*
grid(ng)%CosAngler(i,j)+ &
270 &
forces(ng)%Vwind(i,j)*
grid(ng)%SinAngler(i,j)
271 cff2=
forces(ng)%Vwind(i,j)*
grid(ng)%CosAngler(i,j)- &
272 &
forces(ng)%Uwind(i,j)*
grid(ng)%SinAngler(i,j)
273 forces(ng)%Uwind(i,j)=cff1
274 forces(ng)%Vwind(i,j)=cff2
275 END DO
276 END DO
277
280 & lbi, ubi, lbj, ubj, &
283 & lbi, ubi, lbj, ubj, &
285 END IF
286
287# ifdef DISTRIBUTE
289 & lbi, ubi, lbj, ubj, &
294# endif
295 END IF
296# endif
297# endif
298# endif
299
300# if defined BULK_FLUXES && !defined FORWARD_FLUXES
301
302
303
304
305
306# ifdef ANA_RAIN
308# else
310 & lbi, ubi, lbj, ubj, &
313 & update)
315# endif
316# endif
317
318# if !defined BULK_FLUXES || defined FORWARD_FLUXES
319
320
321
322
323
324# ifdef ANA_STFLUX
326# else
328 & lbi, ubi, lbj, ubj, &
331 & update)
333# endif
334# endif
335
336# ifdef QCORRECTION
337
338
339
340
341
342
343# ifdef ANA_SST
345# else
347 & lbi, ubi, lbj, ubj, &
350 & update)
352# endif
353
354# ifdef ANA_DQDSST
356# else
358 & lbi, ubi, lbj, ubj, &
361 & update)
363# endif
364# endif
365
366
367
368
369
370# ifdef ANA_BTFLUX
372# else
374 & lbi, ubi, lbj, ubj, &
377 & update)
379# endif
380
381# ifdef SALINITY
382
383
384
385
386
387# ifdef ANA_SSFLUX
389# else
390# if !(defined EMINUSP || defined FORWARD_FLUXES || \
391 defined frc_coupling || defined srelaxation)
393 & lbi, ubi, lbj, ubj, &
396 & update)
398
399# elif (defined EMINUSP || defined FORWARD_FLUXES || \
400 defined frc_coupling)
402 & lbi, ubi, lbj, ubj, &
405 & update)
407# endif
408# endif
409
410# if defined SCORRECTION || defined SRELAXATION
411
412
413
414
415
416# ifdef ANA_SSS
418# else
420 & lbi, ubi, lbj, ubj, &
423 & update)
425# endif
426# endif
427
428
429
430
431
432# ifdef ANA_BSFLUX
434# else
436 & lbi, ubi, lbj, ubj, &
439 & update)
441# endif
442# endif
443
444# if defined BIOLOGY || defined SEDIMENT || defined T_PASSIVE
445
446
447
448
449
451# ifdef ANA_SPFLUX
453# else
455 & lbi, ubi, lbj, ubj, &
456 &
forces(ng)%stfluxG(:,:,:,itrc), &
457 &
forces(ng)%stflux (:,:,itrc), &
458 & update)
460# endif
461
462# ifdef ANA_BPFLUX
464# else
466 & lbi, ubi, lbj, ubj, &
467 &
forces(ng)%btfluxG(:,:,:,itrc), &
468 &
forces(ng)%btflux (:,:,itrc), &
469 & update)
471# endif
472 END DO
473# endif
474# endif
475
476# if !defined BULK_FLUXES || defined FORWARD_FLUXES || \
477 defined frc_coupling
478
479
480
481
482
483# ifdef ANA_SMFLUX
485# else
487 & lbi, ubi, lbj, ubj, &
490 & update)
492
494 & lbi, ubi, lbj, ubj, &
497 & update)
499
500# ifdef CURVGRID
501
502
503
504
508 DO j=jstrr,jendr
509 DO i=istrr,iendr
510 cff1=
forces(ng)%sustr(i,j)*
grid(ng)%CosAngler(i,j)+ &
511 &
forces(ng)%svstr(i,j)*
grid(ng)%SinAngler(i,j)
512 cff2=
forces(ng)%svstr(i,j)*
grid(ng)%CosAngler(i,j)- &
513 &
forces(ng)%sustr(i,j)*
grid(ng)%SinAngler(i,j)
514 forces(ng)%sustr(i,j)=cff1
515 forces(ng)%svstr(i,j)=cff2
516 END DO
517 END DO
518
521 & lbi, ubi, lbj, ubj, &
524 & lbi, ubi, lbj, ubj, &
526 END IF
527
528# ifdef DISTRIBUTE
530 & lbi, ubi, lbj, ubj, &
535# endif
536 END IF
537# endif
538# endif
539# endif
540
541# if (defined BULK_FLUXES && !defined FORWARD_FLUXES) || \
542 defined ecosim || defined atm_press
543
544
545
546
547
548# ifdef ANA_PAIR
550# else
551 setbc=.true.
552
554 & lbi, ubi, lbj, ubj, &
557 & update, setbc)
559# endif
560# endif
561
562# ifdef WAVE_DATA
563
564
565
566
567
568# ifdef ANA_WWAVE
570# else
571# ifdef WAVES_DIR
573 & lbi, ubi, lbj, ubj, &
576 & update)
578
579# ifdef CURVGRID
580
581
582
586 DO j=jstrr,jendr
587 DO i=istrr,iendr
589 &
grid(ng)%angler(i,j)
590 END DO
591 END DO
592 END IF
593
596 & lbi, ubi, lbj, ubj, &
598 END IF
599
600# ifdef DISTRIBUTE
602 & lbi, ubi, lbj, ubj, &
606# endif
607# endif
608# endif
609
610# ifdef WAVES_HEIGHT
611
613 & lbi, ubi, lbj, ubj, &
616 & update)
618# endif
619
620# ifdef WAVES_LENGTH
621
623 & lbi, ubi, lbj, ubj, &
626 & update)
628# endif
629
630# ifdef WAVES_TOP_PERIOD
631
633 & lbi, ubi, lbj, ubj, &
634 &
forces(ng)%Pwave_topG, &
636 & update)
638# endif
639
640# ifdef WAVES_BOT_PERIOD
641
643 & lbi, ubi, lbj, ubj, &
644 &
forces(ng)%Pwave_botG, &
646 & update)
648# endif
649
650# if defined WAVES_UB
651
653 & lbi, ubi, lbj, ubj, &
656 & update)
658# endif
659
660# if defined TKE_WAVEDISS
661
663 & lbi, ubi, lbj, ubj, &
664 &
forces(ng)%Wave_dissipG, &
665 &
forces(ng)%Wave_dissip, &
666 & update)
668# endif
669
670# if defined SVENDSEN_ROLLER
671
673 & lbi, ubi, lbj, ubj, &
674 &
forces(ng)%Wave_breakG, &
675 &
forces(ng)%Wave_break, &
676 & update)
678# endif
679# endif
680# endif
681
682# if defined ECOSIM && defined SOLVE3D
683
684
685
686
687
688
690# endif
691
692# ifdef ANA_SPINNING
693
694
695
696
697
698
700# endif
701
702
703
704
705
706# ifdef ANA_PSOURCE
709 END IF
710# else
711 IF (
domain(ng)%SouthWest_Test(tile))
THEN
717 & update)
719
720# ifdef SOLVE3D
725 END DO
726 END DO
727# endif
728 END IF
729
730# ifdef SOLVE3D
734 & 1,
nsrc(ng),
n(ng), &
735 &
sources(ng) % TsrcG(:,:,:,itrc), &
736 &
sources(ng) % Tsrc(:,:,itrc), &
737 & update)
739 END IF
740 END DO
741# endif
742 END IF
743# endif
744
745
746
747
748
749
750
752# ifdef ANA_FSOBC
754# else
755 IF (
domain(ng)%SouthWest_Test(tile))
THEN
761 & update)
763 END IF
764
770 & update)
772 END IF
773
779 & update)
781 END IF
782
788 & update)
790 END IF
791 END IF
792# endif
793
794# if defined WET_DRY
795
796
797
799 bry_update=.false.
800 IF (
domain(ng)%Western_Edge(tile))
THEN
801 DO j=jstrr,jendr
803 IF (
boundary(ng)%zeta_west(j).le.cff)
THEN
805 END IF
806 END DO
807 bry_update=.true.
808 END IF
809# ifdef DISTRIBUTE
811 & bry_update, &
813# endif
814 END IF
815
817 bry_update=.false.
818 IF (
domain(ng)%Eastern_Edge(tile))
THEN
819 DO j=jstrr,jendr
821 IF (
boundary(ng)%zeta_east(j).le.cff)
THEN
823 END IF
824 END DO
825 bry_update=.true.
826 END IF
827# ifdef DISTRIBUTE
829 & bry_update, &
831# endif
832 END IF
833
835 bry_update=.false.
836 IF (
domain(ng)%Southern_Edge(tile))
THEN
837 DO i=istrr,iendr
839 IF (
boundary(ng)%zeta_south(i).le.cff)
THEN
841 END IF
842 END DO
843 bry_update=.true.
844 END IF
845# ifdef DISTRIBUTE
847 & bry_update, &
849# endif
850 END IF
851
853 bry_update=.false.
854 IF (
domain(ng)%Northern_Edge(tile))
THEN
855 DO i=istrr,iendr
857 IF (
boundary(ng)%zeta_north(i).le.cff)
THEN
859 END IF
860 END DO
861 bry_update=.true.
862 END IF
863# ifdef DISTRIBUTE
865 & bry_update, &
867# endif
868 END IF
869# endif
870 END IF
871
872
873
875# ifdef ANA_M2OBC
877# else
878 IF (
domain(ng)%SouthWest_Test(tile))
THEN
884 & update)
886 END IF
887
893 & update)
895 END IF
896
902 & update)
904 END IF
905
911 & update)
913 END IF
914
920 & update)
922 END IF
923
929 & update)
931 END IF
932
938 & update)
940 END IF
941
947 & update)
949 END IF
950 END IF
951# endif
952 END IF
953
954# ifdef SOLVE3D
955
956
957
959# ifdef ANA_M3OBC
961# else
962 IF (
domain(ng)%SouthWest_Test(tile))
THEN
965 & 0,
mm(ng)+1,
n(ng), &
968 & update)
970 END IF
971
974 & 1,
mm(ng)+1,
n(ng), &
977 & update)
979 END IF
980
983 & 0,
mm(ng)+1,
n(ng), &
986 & update)
988 END IF
989
992 & 1,
mm(ng)+1,
n(ng), &
995 & update)
997 END IF
998
1001 & 1,
lm(ng)+1,
n(ng), &
1004 & update)
1006 END IF
1007
1010 & 0,
lm(ng)+1,
n(ng), &
1013 & update)
1015 END IF
1016
1019 & 1,
lm(ng)+1,
n(ng), &
1022 & update)
1024 END IF
1025
1028 & 0,
lm(ng)+1,
n(ng), &
1031 & update)
1033 END IF
1034 END IF
1035# endif
1036 END IF
1037
1038
1039
1041# ifdef ANA_TOBC
1043# else
1044 IF (
domain(ng)%SouthWest_Test(tile))
THEN
1048 & jlb, jub,
n(ng), 0,
mm(ng)+1,
n(ng), &
1049 &
boundary(ng) % tG_west(:,:,:,itrc), &
1050 &
boundary(ng) % t_west(:,:,itrc), &
1051 & update)
1053 & __line__, myfile)) RETURN
1054 END IF
1055
1058 & jlb, jub,
n(ng), 0,
mm(ng)+1,
n(ng), &
1059 &
boundary(ng) % tG_east(:,:,:,itrc), &
1060 &
boundary(ng) % t_east(:,:,itrc), &
1061 & update)
1063 & __line__, myfile)) RETURN
1064 END IF
1065
1068 & ilb, iub,
n(ng), 0,
lm(ng)+1,
n(ng), &
1069 &
boundary(ng) % tG_south(:,:,:,itrc), &
1070 &
boundary(ng) % t_south(:,:,itrc), &
1071 & update)
1073 & __line__, myfile)) RETURN
1074 END IF
1075
1078 & ilb, iub,
n(ng), 0,
lm(ng)+1,
n(ng), &
1079 &
boundary(ng) % tG_north(:,:,:,itrc), &
1080 &
boundary(ng) % t_north(:,:,itrc), &
1081 & update)
1083 & __line__, myfile)) RETURN
1084 END IF
1085 END DO
1086 END IF
1087# endif
1088 END IF
1089# endif
1090
1091
1092
1093
1094
1096# ifdef ANA_SSH
1098# else
1100 & lbi, ubi, lbj, ubj, &
1103 & update)
1105# endif
1106 END IF
1107
1108
1109
1110
1111
1113# ifdef ANA_M2CLIMA
1115# else
1117 & lbi, ubi, lbj, ubj, &
1118 &
clima(ng)%ubarclmG, &
1119 &
clima(ng)%ubarclm, &
1120 & update)
1122
1124 & lbi, ubi, lbj, ubj, &
1125 &
clima(ng)%vbarclmG, &
1126 &
clima(ng)%vbarclm, &
1127 & update)
1129# endif
1130 END IF
1131
1132# ifdef SOLVE3D
1133
1134
1135
1136
1137
1139# ifdef ANA_M3CLIMA
1141# else
1143 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1144 &
clima(ng)%uclmG, &
1146 & update)
1148
1150 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1151 &
clima(ng)%vclmG, &
1153 & update)
1155# endif
1156 END IF
1157
1158
1159
1160
1161
1162# ifdef ANA_TCLIMA
1165 END IF
1166# else
1167 ic=0
1170 ic=ic+1
1172 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1173 &
clima(ng)%tclmG(:,:,:,:,ic), &
1174 &
clima(ng)%tclm (:,:,:,ic), &
1175 & update)
1177 END IF
1178 END DO
1179# endif
1180# endif
1181
1182# ifdef FORWARD_READ
1183
1184
1185
1186
1187
1188
1189
1190 DO k=1,3
1192 & lbi, ubi, lbj, ubj, &
1193 &
ocean(ng)%zetaG, &
1194 &
ocean(ng)%zeta(:,:,k), &
1195 & update)
1197 END DO
1198
1199# ifdef SOLVE3D
1200 DO j=jstrr,jendr
1201 DO i=istrr,iendr
1203 END DO
1204 END DO
1205# endif
1206
1207
1208
1209 DO k=1,3
1211 & lbi, ubi, lbj, ubj, &
1212 &
ocean(ng)%ubarG, &
1213 &
ocean(ng)%ubar(:,:,k), &
1214 & update)
1216
1218 & lbi, ubi, lbj, ubj, &
1219 &
ocean(ng)%vbarG, &
1220 &
ocean(ng)%vbar(:,:,k), &
1221 & update)
1223 END DO
1224
1225# ifdef FORWARD_RHS
1226
1227
1228
1229 DO k=1,2
1231 & lbi, ubi, lbj, ubj, &
1232 &
ocean(ng)%rzetaG, &
1233 &
ocean(ng)%rzeta(:,:,k), &
1234 & update)
1236
1238 & lbi, ubi, lbj, ubj, &
1239 &
ocean(ng)%rubarG, &
1240 &
ocean(ng)%rubar(:,:,k), &
1241 & update)
1243
1245 & lbi, ubi, lbj, ubj, &
1246 &
ocean(ng)%rvbarG, &
1247 &
ocean(ng)%rvbar(:,:,k), &
1248 & update)
1250 END DO
1251# endif
1252
1253# ifdef SOLVE3D
1254
1255
1256
1258 & lbi, ubi, lbj, ubj, &
1261 & update)
1263
1265 & lbi, ubi, lbj, ubj, &
1268 & update)
1270
1272 & lbi, ubi, lbj, ubj, &
1275 & update)
1277
1279 & lbi, ubi, lbj, ubj, &
1282 & update)
1284
1285
1286
1287 DO k=1,2
1289 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1291 &
ocean(ng)%u(:,:,:,k), &
1292 & update)
1294
1296 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1298 &
ocean(ng)%v(:,:,:,k), &
1299 & update)
1301 END DO
1302
1303# ifdef FORWARD_RHS
1304
1305
1306
1307 DO k=1,2
1309 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1311 &
ocean(ng)%ru(:,:,:,k), &
1312 & update)
1314
1316 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1318 &
ocean(ng)%rv(:,:,:,k), &
1319 & update)
1321 END DO
1322# endif
1323
1324
1325
1327 DO k=1,3
1329 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1330 &
ocean(ng)%tG(:,:,:,:,itrc), &
1331 &
ocean(ng)%t(:,:,:,k,itrc), &
1332 & update)
1334 END DO
1335 END DO
1336
1337# ifdef FORWARD_MIXING
1338
1339
1340
1343 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1344 &
mixing(ng)%AktG(:,:,:,:,itrc), &
1345 &
mixing(ng)%Akt(:,:,:,itrc), &
1346 & update)
1348 END DO
1349
1351 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1354 & update)
1356# endif
1357
1358# if defined MY25_MIXING_NOT_YET || defined GLS_MIXING_NOT_YET
1359
1360
1361
1362 DO k=1,3
1364 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1366 &
mixing(ng)%tke(:,:,:,k), &
1367 & update)
1369 END DO
1370
1371
1372
1373 DO k=1,3
1375 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1377 &
mixing(ng)%gls(:,:,:,k), &
1378 & update)
1380 END DO
1381
1382
1383
1385 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1388 & update)
1390
1391
1392
1394 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1397 & update)
1399
1400# ifdef GLS_MIXING_NOT_YET
1401
1402
1403
1405 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1408 & update)
1410# endif
1411# endif
1412
1413# ifdef LMD_MIXING_NOT_YET
1414
1415
1416
1418 & lbi, ubi, lbj, ubj, &
1421 & update)
1423# endif
1424
1425# ifdef LMD_BKPP_NOT_YET
1426
1427
1428
1430 & lbi, ubi, lbj, ubj, &
1433 & update)
1435# endif
1436
1437# ifdef LMD_NONLOCAL_NOT_YET
1438
1439
1440
1443 & lbi, ubi, lbj, ubj, 0,
n(ng), &
1444 &
mixing(ng)%ghatsG(:,:,:,:,itrc), &
1445 &
mixing(ng)%ghat(:,:,:,itrc), &
1446 & update)
1448 END DO
1449# endif
1450# endif
1451
1452# ifdef WEAK_CONSTRAINT
1453
1454
1455
1456
1457
1459
1460
1461
1463 & lbi, ubi, lbj, ubj, &
1464 &
ocean(ng)%f_zetaG, &
1465 &
ocean(ng)%f_zeta, &
1466 & update)
1468
1469# ifndef SOLVE3D
1470
1471
1472
1474 & lbi, ubi, lbj, ubj, &
1475 &
ocean(ng)%f_ubarG, &
1476 &
ocean(ng)%f_ubar, &
1477 & update)
1479
1481 & lbi, ubi, lbj, ubj, &
1482 &
ocean(ng)%f_vbarG, &
1483 &
ocean(ng)%f_vbar, &
1484 & update)
1486# else
1487
1488
1489
1491 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1494 & update)
1496
1498 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1501 & update)
1503
1504
1505
1508 & lbi, ubi, lbj, ubj, 1,
n(ng), &
1509 &
ocean(ng)%f_tG(:,:,:,:,itrc), &
1510 &
ocean(ng)%f_t(:,:,:,itrc), &
1511 & update)
1513 END DO
1514# endif
1515 END IF
1516# endif
1517# endif
1518
1519 RETURN
subroutine ana_spinning(ng, tile, model)
subroutine ana_fsobc(ng, tile, model)
subroutine ana_wwave(ng, tile, model)
subroutine ana_sst(ng, tile, model)
subroutine ana_m3obc(ng, tile, model)
subroutine ana_dqdsst(ng, tile, model)
subroutine ana_tclima(ng, tile, model)
subroutine ana_btflux(ng, tile, model, itrc)
subroutine ana_ssh(ng, tile, model)
subroutine ana_m2obc(ng, tile, model)
subroutine ana_tobc(ng, tile, model)
subroutine ana_sss(ng, tile, model)
subroutine ana_psource(ng, tile, model)
subroutine ana_winds(ng, tile, model)
subroutine ana_srflux(ng, tile, model)
subroutine ana_smflux(ng, tile, model)
subroutine ana_pair(ng, tile, model)
subroutine ana_m2clima(ng, tile, model)
subroutine ana_tair(ng, tile, model)
subroutine ana_m3clima(ng, tile, model)
subroutine ana_stflux(ng, tile, model, itrc)
subroutine ana_rain(ng, tile, model)
subroutine ana_specir(ng, tile, model)
subroutine ana_humid(ng, tile, model)
subroutine ana_cloud(ng, tile, model)
subroutine mp_boundary(ng, model, imin, imax, lbi, ubi, lbk, ubk, update, a)
subroutine exchange_r2d_tile(ng, tile, lbi, ubi, lbj, ubj, a)
subroutine exchange_u2d_tile(ng, tile, lbi, ubi, lbj, ubj, a)
subroutine exchange_v2d_tile(ng, tile, lbi, ubi, lbj, ubj, a)
type(t_boundary), dimension(:), allocatable boundary
type(t_clima), dimension(:), allocatable clima
type(t_coupling), dimension(:), allocatable coupling
type(t_forces), dimension(:), allocatable forces
type(t_grid), dimension(:), allocatable grid
type(t_mixing), dimension(:), allocatable mixing
integer, dimension(2) iddiff
integer, dimension(4) idu3bc
integer, dimension(4) idzbry
integer, dimension(4) idu2bc
logical, dimension(:,:,:), allocatable linfo
integer, dimension(:), allocatable idrtrc
integer, dimension(:), allocatable idtbot
integer, dimension(:), allocatable idtsur
integer, dimension(:), allocatable idtclm
integer, dimension(:), allocatable idtvar
integer, dimension(:), allocatable istvar
integer, dimension(4) idv3bc
integer, dimension(:), allocatable idttlf
integer, dimension(2) idghat
integer, dimension(:,:,:), allocatable iinfo
integer, dimension(4) idv2bc
integer, dimension(:,:), allocatable idtbry
type(t_ocean), dimension(:), allocatable ocean
integer, dimension(:), allocatable n
type(t_bounds), dimension(:), allocatable bounds
type(t_lbc), dimension(:,:,:), allocatable tl_lbc
type(t_domain), dimension(:), allocatable domain
integer, dimension(:), allocatable lm
integer, dimension(:), allocatable nt
integer, dimension(:), allocatable mm
logical, dimension(:), allocatable luvsrc
logical, dimension(:,:), allocatable ltracersrc
real(r8), dimension(:), allocatable dcrit
logical, dimension(:), allocatable lprocessobc
logical, dimension(:), allocatable ewperiodic
logical, dimension(:), allocatable nsperiodic
logical, dimension(:), allocatable lm3clm
logical, dimension(:), allocatable lsshclm
logical, dimension(:), allocatable frequentimpulse
logical, dimension(:), allocatable lwsrc
integer, parameter isouth
logical, dimension(:), allocatable lm2clm
logical, dimension(:,:), allocatable ltracerclm
integer, parameter inorth
type(t_sources), dimension(:), allocatable sources
integer, dimension(:), allocatable nsrc
subroutine mp_exchange2d(ng, tile, model, nvar, lbi, ubi, lbj, ubj, nghost, ew_periodic, ns_periodic, a, b, c, d)
subroutine mp_exchange3d(ng, tile, model, nvar, lbi, ubi, lbj, ubj, lbk, ubk, nghost, ew_periodic, ns_periodic, a, b, c, d)
subroutine set_2dfld_tile(ng, tile, model, ifield, lbi, ubi, lbj, ubj, finp, fout, update, setbc)
subroutine set_3dfld_tile(ng, tile, model, ifield, lbi, ubi, lbj, ubj, lbk, ubk, finp, fout, update, setbc)
logical function, public founderror(flag, noerr, line, routine)
subroutine set_ngfld(ng, model, ifield, lbi, ubi, ubj, istr, iend, jrec, finp, fout, update)