370 & LBi, UBi, LBj, UBj, LBij, UBij)
383 integer,
intent(in) :: ng, extract_flag
384 integer,
intent(in) :: lbi, ubi, lbj, ubj, lbij, ubij
400 size2d=real((ubi-lbi+1)*(ubj-lbj+1),
r8)
404#if defined MASKING && defined PROPAGATOR
405 allocate (
grid(ng) % IJwaterR(lbi:ubi,lbj:ubj) )
408 allocate (
grid(ng) % IJwaterU(lbi:ubi,lbj:ubj) )
411 allocate (
grid(ng) % IJwaterV(lbi:ubi,lbj:ubj) )
415 allocate (
grid(ng) % angler(lbi:ubi,lbj:ubj) )
418 allocate (
grid(ng) % CosAngler(lbi:ubi,lbj:ubj) )
421 allocate (
grid(ng) % SinAngler(lbi:ubi,lbj:ubj) )
424#if defined TIDE_GENERATING_FORCES
425 allocate (
grid(ng) % Cos2Lat(lbi:ubi,lbj:ubj) )
428 allocate (
grid(ng) % SinLat2(lbi:ubi,lbj:ubj) )
432#if defined CURVGRID && defined UV_ADV
433 allocate (
grid(ng) % dmde(lbi:ubi,lbj:ubj) )
436 allocate (
grid(ng) % dndx(lbi:ubi,lbj:ubj) )
440 allocate (
grid(ng) % f(lbi:ubi,lbj:ubj) )
443 allocate (
grid(ng) % fomn(lbi:ubi,lbj:ubj) )
446 allocate (
grid(ng) % grdscl(lbi:ubi,lbj:ubj) )
449 allocate (
grid(ng) % h(lbi:ubi,lbj:ubj) )
452 allocate (
grid(ng) % latp(lbi:ubi,lbj:ubj) )
455 allocate (
grid(ng) % latr(lbi:ubi,lbj:ubj) )
458 allocate (
grid(ng) % latu(lbi:ubi,lbj:ubj) )
461 allocate (
grid(ng) % latv(lbi:ubi,lbj:ubj) )
464 allocate (
grid(ng) % lonp(lbi:ubi,lbj:ubj))
467 allocate (
grid(ng) % lonr(lbi:ubi,lbj:ubj))
470 allocate (
grid(ng) % lonu(lbi:ubi,lbj:ubj))
473 allocate (
grid(ng) % lonv(lbi:ubi,lbj:ubj))
476 allocate (
grid(ng) % Mylon(lbi:ubi,lbj:ubj))
479 allocate (
grid(ng) % omn(lbi:ubi,lbj:ubj) )
482 allocate (
grid(ng) % om_p(lbi:ubi,lbj:ubj) )
485 allocate (
grid(ng) % om_r(lbi:ubi,lbj:ubj) )
488 allocate (
grid(ng) % om_u(lbi:ubi,lbj:ubj) )
491 allocate (
grid(ng) % om_v(lbi:ubi,lbj:ubj) )
494 allocate (
grid(ng) % on_p(lbi:ubi,lbj:ubj) )
497 allocate (
grid(ng) % on_r(lbi:ubi,lbj:ubj) )
500 allocate (
grid(ng) % on_u(lbi:ubi,lbj:ubj) )
503 allocate (
grid(ng) % on_v(lbi:ubi,lbj:ubj) )
506 allocate (
grid(ng) % pm(lbi:ubi,lbj:ubj) )
509 allocate (
grid(ng) % pn(lbi:ubi,lbj:ubj) )
512 allocate (
grid(ng) % pmon_p(lbi:ubi,lbj:ubj) )
515 allocate (
grid(ng) % pmon_r(lbi:ubi,lbj:ubj) )
518 allocate (
grid(ng) % pmon_u(lbi:ubi,lbj:ubj) )
521 allocate (
grid(ng) % pmon_v(lbi:ubi,lbj:ubj) )
524 allocate (
grid(ng) % pnom_p(lbi:ubi,lbj:ubj) )
527 allocate (
grid(ng) % pnom_r(lbi:ubi,lbj:ubj) )
530 allocate (
grid(ng) % pnom_u(lbi:ubi,lbj:ubj) )
533 allocate (
grid(ng) % pnom_v(lbi:ubi,lbj:ubj) )
536#if defined UV_LOGDRAG || defined GLS_MIXING || \
537 defined bbl_model || defined sediment
538 allocate (
grid(ng) % ZoBot(lbi:ubi,lbj:ubj) )
542 allocate (
grid(ng) % rdrag(lbi:ubi,lbj:ubj) )
546 allocate (
grid(ng) % rdrag2(lbi:ubi,lbj:ubj) )
550 allocate (
grid(ng) % xp(lbi:ubi,lbj:ubj) )
553 allocate (
grid(ng) % xr(lbi:ubi,lbj:ubj) )
556 allocate (
grid(ng) % xu(lbi:ubi,lbj:ubj) )
559 allocate (
grid(ng) % xv(lbi:ubi,lbj:ubj) )
562 allocate (
grid(ng) % yp(lbi:ubi,lbj:ubj) )
565 allocate (
grid(ng) % yr(lbi:ubi,lbj:ubj) )
568 allocate (
grid(ng) % yu(lbi:ubi,lbj:ubj) )
571 allocate (
grid(ng) % yv(lbi:ubi,lbj:ubj) )
575 allocate (
grid(ng) % Hz(lbi:ubi,lbj:ubj,
n(ng)) )
578# ifdef ADJUST_BOUNDARY
579 allocate (
grid(ng) % Hz_bry(lbij:ubij,
n(ng),4) )
580 dmem(ng)=
dmem(ng)+4.0_r8*real((ubij-lbij)*
n(ng),
r8)
583 allocate (
grid(ng) % Huon(lbi:ubi,lbj:ubj,
n(ng)) )
586 allocate (
grid(ng) % Hvom(lbi:ubi,lbj:ubj,
n(ng)) )
589 allocate (
grid(ng) % z0_r(lbi:ubi,lbj:ubj,
n(ng)) )
592 allocate (
grid(ng) % z0_w(lbi:ubi,lbj:ubj,0:
n(ng)) )
595 allocate (
grid(ng) % z_r(lbi:ubi,lbj:ubj,
n(ng)) )
598 allocate (
grid(ng) % z_v(lbi:ubi,lbj:ubj,
n(ng)) )
601 allocate (
grid(ng) % z_w(lbi:ubi,lbj:ubj,0:
n(ng)) )
605 allocate (
grid(ng) % IcePress(lbi:ubi,lbj:ubj) )
608 allocate (
grid(ng) % zice(lbi:ubi,lbj:ubj) )
615 allocate (
grid(ng) % pmask(lbi:ubi,lbj:ubj) )
618 allocate (
grid(ng) % rmask(lbi:ubi,lbj:ubj) )
621 allocate (
grid(ng) % umask(lbi:ubi,lbj:ubj) )
624 allocate (
grid(ng) % vmask(lbi:ubi,lbj:ubj) )
626# if defined AVERAGES || \
627 (defined ad_averages && defined adjoint) || \
628 (defined rp_averages && defined tl_ioms) || \
629 (defined tl_averages && defined tangent)
630 allocate (
grid(ng) % pmask_avg(lbi:ubi,lbj:ubj) )
633 allocate (
grid(ng) % rmask_avg(lbi:ubi,lbj:ubj) )
636 allocate (
grid(ng) % umask_avg(lbi:ubi,lbj:ubj) )
639 allocate (
grid(ng) % vmask_avg(lbi:ubi,lbj:ubj) )
643 allocate (
grid(ng) % pmask_dia(lbi:ubi,lbj:ubj) )
646 allocate (
grid(ng) % rmask_dia(lbi:ubi,lbj:ubj) )
649 allocate (
grid(ng) % umask_dia(lbi:ubi,lbj:ubj) )
652 allocate (
grid(ng) % vmask_dia(lbi:ubi,lbj:ubj) )
655 allocate (
grid(ng) % pmask_full(lbi:ubi,lbj:ubj) )
658 allocate (
grid(ng) % rmask_full(lbi:ubi,lbj:ubj) )
661 allocate (
grid(ng) % umask_full(lbi:ubi,lbj:ubj) )
664 allocate (
grid(ng) % vmask_full(lbi:ubi,lbj:ubj) )
669 allocate (
grid(ng) % pmask_wet(lbi:ubi,lbj:ubj) )
672 allocate (
grid(ng) % rmask_wet(lbi:ubi,lbj:ubj) )
675 allocate (
grid(ng) % umask_wet(lbi:ubi,lbj:ubj) )
678 allocate (
grid(ng) % vmask_wet(lbi:ubi,lbj:ubj) )
681 allocate (
grid(ng) % rmask_wet_avg(lbi:ubi,lbj:ubj) )
686#if defined AD_SENSITIVITY || defined I4DVAR_ANA_SENSITIVITY || \
687 defined opt_observations || defined sensitivity_4dvar || \
689 allocate (
grid(ng) % Rscope(lbi:ubi,lbj:ubj) )
692 allocate (
grid(ng) % Uscope(lbi:ubi,lbj:ubj) )
695 allocate (
grid(ng) % Vscope(lbi:ubi,lbj:ubj) )
699#if defined TANGENT || defined TL_IOMS
703 allocate (
grid(ng) % tl_h(lbi:ubi,lbj:ubj) )
707 allocate (
grid(ng) % tl_Hz(lbi:ubi,lbj:ubj,
n(ng)) )
710# ifdef ADJUST_BOUNDARY
711 allocate (
grid(ng) % tl_Hz_bry(lbij:ubij,
n(ng),4) )
712 dmem(ng)=
dmem(ng)+4.0_r8*real((ubij-lbij)*
n(ng),
r8)*size2d
715 allocate (
grid(ng) % tl_Huon(lbi:ubi,lbj:ubj,
n(ng)) )
718 allocate (
grid(ng) % tl_Hvom(lbi:ubi,lbj:ubj,
n(ng)) )
721 allocate (
grid(ng) % tl_z_r(lbi:ubi,lbj:ubj,
n(ng)) )
724 allocate (
grid(ng) % tl_z_w(lbi:ubi,lbj:ubj,0:
n(ng)) )
733 allocate (
grid(ng) % ad_h(lbi:ubi,lbj:ubj) )
737 allocate (
grid(ng) % ad_Hz(lbi:ubi,lbj:ubj,
n(ng)) )
740# ifdef ADJUST_BOUNDARY
741 allocate (
grid(ng) % ad_Hz_bry(lbij:ubij,
n(ng),4) )
742 dmem(ng)=
dmem(ng)+4.0_r8*real((ubij-lbij)*
n(ng),
r8)*size2d
745 allocate (
grid(ng) % ad_Huon(lbi:ubi,lbj:ubj,
n(ng)) )
748 allocate (
grid(ng) % ad_Hvom(lbi:ubi,lbj:ubj,
n(ng)) )
751 allocate (
grid(ng) % ad_z_r(lbi:ubi,lbj:ubj,
n(ng)) )
754 allocate (
grid(ng) % ad_z_w(lbi:ubi,lbj:ubj,0:
n(ng)) )
763 IF (extract_flag.ge.1)
THEN
767 allocate (
grid(ng) % Gangle_psi(my_size) )
771 allocate (
grid(ng) % Gmask_psi(my_size) )
775 allocate (
grid(ng) % Gx_psi(my_size) )
778 allocate (
grid(ng) % Gy_psi(my_size) )
784 allocate (
grid(ng) % Gangle_rho(my_size) )
788 allocate (
grid(ng) % Gmask_rho(my_size) )
792 allocate (
grid(ng) % Gx_rho(my_size) )
795 allocate (
grid(ng) % Gy_rho(my_size) )
801 allocate (
grid(ng) % Gangle_u(my_size) )
805 allocate (
grid(ng) % Gmask_u(my_size) )
809 allocate (
grid(ng) % Gx_u(my_size) )
812 allocate (
grid(ng) % Gy_u(my_size) )
818 allocate (
grid(ng) % Gangle_v(my_size) )
822 allocate (
grid(ng) % Gmask_v(my_size) )
826 allocate (
grid(ng) % Gx_v(my_size) )
829 allocate (
grid(ng) % Gy_v(my_size) )
847#ifdef SUBOBJECT_DEALLOCATION
853 integer,
intent(in) :: ng
857 character (len=*),
parameter :: myfile = &
858 & __FILE__//
", deallocate_grid"
860#ifdef SUBOBJECT_DEALLOCATION
869# if defined MASKING && defined PROPAGATOR
871 & __line__,
'GRID(ng)%IJwaterR'))
RETURN
874 & __line__,
'GRID(ng)%IJwaterU'))
RETURN
877 & __line__,
'GRID(ng)%IJwaterV'))
RETURN
881 & __line__,
'GRID(ng)%angler'))
RETURN
884 & __line__,
'GRID(ng)%CosAngler'))
RETURN
887 & __line__,
'GRID(ng)%SinAngler'))
RETURN
889# if defined TIDE_GENERATING_FORCES
891 & __line__,
'GRID(ng)%Cos2Lat'))
RETURN
894 & __line__,
'GRID(ng)%SinLat2'))
RETURN
897# if defined CURVGRID && defined UV_ADV
899 & __line__,
'GRID(ng)%dmde'))
RETURN
902 & __line__,
'GRID(ng)%dndx'))
RETURN
906 & __line__,
'GRID(ng)%f'))
RETURN
909 & __line__,
'GRID(ng)%fomn'))
RETURN
912 & __line__,
'GRID(ng)%grdscl'))
RETURN
915 & __line__,
'GRID(ng)%h'))
RETURN
918 & __line__,
'GRID(ng)%latp'))
RETURN
921 & __line__,
'GRID(ng)%latr'))
RETURN
924 & __line__,
'GRID(ng)%latu'))
RETURN
927 & __line__,
'GRID(ng)%latv'))
RETURN
930 & __line__,
'GRID(ng)%lonp'))
RETURN
933 & __line__,
'GRID(ng)%lonr'))
RETURN
936 & __line__,
'GRID(ng)%lonu'))
RETURN
939 & __line__,
'GRID(ng)%lonv'))
RETURN
942 & __line__,
'GRID(ng)%Mylon'))
RETURN
945 & __line__,
'GRID(ng)%omn'))
RETURN
948 & __line__,
'GRID(ng)%om_p'))
RETURN
951 & __line__,
'GRID(ng)%om_r'))
RETURN
954 & __line__,
'GRID(ng)%om_u'))
RETURN
957 & __line__,
'GRID(ng)%om_v'))
RETURN
960 & __line__,
'GRID(ng)%on_p'))
RETURN
963 & __line__,
'GRID(ng)%on_r'))
RETURN
966 & __line__,
'GRID(ng)%on_u'))
RETURN
969 & __line__,
'GRID(ng)%on_v'))
RETURN
972 & __line__,
'GRID(ng)%pm'))
RETURN
975 & __line__,
'GRID(ng)%pn'))
RETURN
978 & __line__,
'GRID(ng)%pmon_p'))
RETURN
981 & __line__,
'GRID(ng)%pmon_r'))
RETURN
984 & __line__,
'GRID(ng)%pmon_u'))
RETURN
987 & __line__,
'GRID(ng)%pmon_v'))
RETURN
990 & __line__,
'GRID(ng)%pnom_p'))
RETURN
993 & __line__,
'GRID(ng)%pnom_r'))
RETURN
996 & __line__,
'GRID(ng)%pnom_u'))
RETURN
999 & __line__,
'GRID(ng)%pnom_v'))
RETURN
1001# if defined UV_LOGDRAG || defined GLS_MIXING || \
1002 defined bbl_model || defined sediment
1004 & __line__,
'GRID(ng)%ZoBot'))
RETURN
1008 & __line__,
'GRID(ng)%rdrag'))
RETURN
1010# if defined UV_QDRAG
1012 & __line__,
'GRID(ng)%rdrag2'))
RETURN
1016 & __line__,
'GRID(ng)%xp'))
RETURN
1019 & __line__,
'GRID(ng)%xr'))
RETURN
1022 & __line__,
'GRID(ng)%xu'))
RETURN
1025 & __line__,
'GRID(ng)%xv'))
RETURN
1028 & __line__,
'GRID(ng)%yp'))
RETURN
1031 & __line__,
'GRID(ng)%yr'))
RETURN
1034 & __line__,
'GRID(ng)%yu'))
RETURN
1037 & __line__,
'GRID(ng)%yv'))
RETURN
1041 & __line__,
'GRID(ng)%Hz'))
RETURN
1043# ifdef ADJUST_BOUNDARY
1045 & __line__,
'GRID(ng)%Hz_bry'))
RETURN
1049 & __line__,
'GRID(ng)%Huon'))
RETURN
1052 & __line__,
'GRID(ng)%Hvom'))
RETURN
1055 & __line__,
'GRID(ng)%z0_r'))
RETURN
1058 & __line__,
'GRID(ng)%z0_w'))
RETURN
1061 & __line__,
'GRID(ng)%z_r'))
RETURN
1064 & __line__,
'GRID(ng)%z_v'))
RETURN
1067 & __line__,
'GRID(ng)%z_w'))
RETURN
1071 & __line__,
'GRID(ng)%IcePress'))
RETURN
1074 & __line__,
'GRID(ng)%zice'))
RETURN
1081 & __line__,
'GRID(ng)%pmask'))
RETURN
1084 & __line__,
'GRID(ng)%rmask'))
RETURN
1087 & __line__,
'GRID(ng)%umask'))
RETURN
1090 & __line__,
'GRID(ng)%vmask'))
RETURN
1092# if defined AVERAGES || \
1093 (defined ad_averages && defined adjoint) || \
1094 (defined rp_averages && defined tl_ioms) || \
1095 (defined tl_averages && defined tangent)
1096 IF (.not.
destroy(ng,
grid(ng)%pmask_avg, myfile, &
1097 & __line__,
'GRID(ng)%pmask_avg'))
RETURN
1099 IF (.not.
destroy(ng,
grid(ng)%rmask_avg, myfile, &
1100 & __line__,
'GRID(ng)%rmask_avg'))
RETURN
1102 IF (.not.
destroy(ng,
grid(ng)%umask_avg, myfile, &
1103 & __line__,
'GRID(ng)%umask_avg'))
RETURN
1105 IF (.not.
destroy(ng,
grid(ng)%vmask_avg, myfile, &
1106 & __line__,
'GRID(ng)%vmask_avg'))
RETURN
1110 IF (.not.
destroy(ng,
grid(ng)%pmask_dia, myfile, &
1111 & __line__,
'GRID(ng)%pmask_dia'))
RETURN
1113 IF (.not.
destroy(ng,
grid(ng)%rmask_dia, myfile, &
1114 & __line__,
'GRID(ng)%rmask_dia'))
RETURN
1116 IF (.not.
destroy(ng,
grid(ng)%umask_dia, myfile, &
1117 & __line__,
'GRID(ng)%umask_dia'))
RETURN
1119 IF (.not.
destroy(ng,
grid(ng)%vmask_dia, myfile, &
1120 & __line__,
'GRID(ng)%vmask_dia'))
RETURN
1123 IF (.not.
destroy(ng,
grid(ng)%pmask_full, myfile, &
1124 & __line__,
'GRID(ng)%pmask_full'))
RETURN
1126 IF (.not.
destroy(ng,
grid(ng)%rmask_full, myfile, &
1127 & __line__,
'GRID(ng)%rmask_full'))
RETURN
1129 IF (.not.
destroy(ng,
grid(ng)%umask_full, myfile, &
1130 & __line__,
'GRID(ng)%umask_full'))
RETURN
1132 IF (.not.
destroy(ng,
grid(ng)%vmask_full, myfile, &
1133 & __line__,
'GRID(ng)%vmask_full'))
RETURN
1137 IF (.not.
destroy(ng,
grid(ng)%pmask_wet, myfile, &
1138 & __line__,
'GRID(ng)%pmask_wet'))
RETURN
1140 IF (.not.
destroy(ng,
grid(ng)%rmask_wet, myfile, &
1141 & __line__,
'GRID(ng)%rmask_wet'))
RETURN
1143 IF (.not.
destroy(ng,
grid(ng)%umask_wet, myfile, &
1144 & __line__,
'GRID(ng)%umask_wet'))
RETURN
1146 IF (.not.
destroy(ng,
grid(ng)%vmask_wet, myfile, &
1147 & __line__,
'GRID(ng)%vmask_wet'))
RETURN
1150 IF (.not.
destroy(ng,
grid(ng)%rmask_wet_avg, myfile, &
1151 & __line__,
'GRID(ng)%rmask_wet_avg'))
RETURN
1155# if defined AD_SENSITIVITY || defined I4DVAR_ANA_SENSITIVITY || \
1156 defined opt_observations || defined sensitivity_4dvar || \
1159 & __line__,
'GRID(ng)%Rscope'))
RETURN
1162 & __line__,
'GRID(ng)%Uscope'))
RETURN
1165 & __line__,
'GRID(ng)%Vscope'))
RETURN
1168# if defined TANGENT || defined TL_IOMS
1173 & __line__,
'GRID(ng)%tl_h'))
RETURN
1177 & __line__,
'GRID(ng)%tl_Hz'))
RETURN
1179# ifdef ADJUST_BOUNDARY
1180 IF (.not.
destroy(ng,
grid(ng)%tl_Hz_bry, myfile, &
1181 & __line__,
'GRID(ng)%tl_Hz_bry'))
RETURN
1185 & __line__,
'GRID(ng)%tl_Huon'))
RETURN
1188 & __line__,
'GRID(ng)%tl_Hvom'))
RETURN
1191 & __line__,
'GRID(ng)%tl_z_r'))
RETURN
1194 & __line__,
'GRID(ng)%tl_z_w'))
RETURN
1203 & __line__,
'GRID(ng)%ad_h'))
RETURN
1207 & __line__,
'GRID(ng)%ad_Hz'))
RETURN
1209# ifdef ADJUST_BOUNDARY
1210 IF (.not.
destroy(ng,
grid(ng)%ad_Hz_bry, myfile, &
1211 & __line__,
'GRID(ng)%ad_Hz_bry'))
RETURN
1215 & __line__,
'GRID(ng)%ad_Huon'))
RETURN
1218 & __line__,
'GRID(ng)%ad_Hvom'))
RETURN
1221 & __line__,
'GRID(ng)%ad_z_r'))
RETURN
1224 & __line__,
'GRID(ng)%ad_z_w'))
RETURN
1234 IF (
allocated(
grid))
deallocate (
grid )
1257 integer,
intent(in) :: ng, tile, model
1261 integer :: imin, imax, jmin, jmax
1267 real(
r8),
parameter :: inival = 0.0_r8
1268 real(
r8) :: inimetricval
1270#include "set_bounds.h"
1275 imin=
bounds(ng)%LBi(tile)
1276 imax=
bounds(ng)%UBi(tile)
1277 jmin=
bounds(ng)%LBj(tile)
1278 jmax=
bounds(ng)%UBj(tile)
1280 IF (
domain(ng)%Western_Edge(tile))
THEN
1281 imin=
bounds(ng)%LBi(tile)
1285 IF (
domain(ng)%Eastern_Edge(tile))
THEN
1286 imax=
bounds(ng)%UBi(tile)
1290 IF (
domain(ng)%Southern_Edge(tile))
THEN
1291 jmin=
bounds(ng)%LBj(tile)
1295 IF (
domain(ng)%Northern_Edge(tile))
THEN
1296 jmax=
bounds(ng)%UBj(tile)
1319 IF ((model.eq.0).or.(model.eq.
inlm))
THEN
1322#if defined MASKING && defined PROPAGATOR
1323 grid(ng) % IJwaterR(i,j) = 0
1324 grid(ng) % IJwaterU(i,j) = 0
1325 grid(ng) % IJwaterV(i,j) = 0
1327 grid(ng) % angler(i,j) = inimetricval
1328 grid(ng) % CosAngler(i,j) = inival
1329 grid(ng) % SinAngler(i,j) = inival
1331#if defined TIDE_GENERATING_FORCES
1332 grid(ng) % Cos2Lat(i,j) = inival
1333 grid(ng) % SinLat2(i,j) = inival
1336#if defined CURVGRID && defined UV_ADV
1337 grid(ng) % dmde(i,j) = inimetricval
1338 grid(ng) % dndx(i,j) = inimetricval
1340 grid(ng) % f(i,j) = inimetricval
1341 grid(ng) % fomn(i,j) = inival
1342 grid(ng) % grdscl(i,j) = inival
1344 grid(ng) % h(i,j) = inimetricval
1346 grid(ng) % latp(i,j) = inival
1347 grid(ng) % latr(i,j) = inimetricval
1348 grid(ng) % latu(i,j) = inimetricval
1349 grid(ng) % latv(i,j) = inimetricval
1350 grid(ng) % lonp(i,j) = inival
1351 grid(ng) % lonr(i,j) = inimetricval
1352 grid(ng) % lonu(i,j) = inimetricval
1353 grid(ng) % lonv(i,j) = inimetricval
1354 grid(ng) % MyLon(i,j) = inimetricval
1356 grid(ng) % omn(i,j) = inival
1357 grid(ng) % om_p(i,j) = inival
1358 grid(ng) % om_r(i,j) = inival
1359 grid(ng) % om_u(i,j) = inival
1360 grid(ng) % om_v(i,j) = inival
1361 grid(ng) % on_p(i,j) = inival
1362 grid(ng) % on_r(i,j) = inival
1363 grid(ng) % on_u(i,j) = inival
1364 grid(ng) % on_v(i,j) = inival
1366 grid(ng) % pm(i,j) = inimetricval
1367 grid(ng) % pn(i,j) = inimetricval
1369 grid(ng) % pmon_p(i,j) = inival
1370 grid(ng) % pmon_r(i,j) = inival
1371 grid(ng) % pmon_u(i,j) = inival
1372 grid(ng) % pmon_v(i,j) = inival
1373 grid(ng) % pnom_p(i,j) = inival
1374 grid(ng) % pnom_r(i,j) = inival
1375 grid(ng) % pnom_u(i,j) = inival
1376 grid(ng) % pnom_v(i,j) = inival
1378#if defined UV_LOGDRAG || defined GLS_MIXING || \
1379 defined bbl_model || defined sediment
1380 grid(ng) % ZoBot(i,j) =
zob(ng)
1387 grid(ng) % xp(i,j) = inival
1388 grid(ng) % xr(i,j) = inimetricval
1389 grid(ng) % xu(i,j) = inimetricval
1390 grid(ng) % xv(i,j) = inimetricval
1391 grid(ng) % yp(i,j) = inival
1392 grid(ng) % yr(i,j) = inimetricval
1393 grid(ng) % yu(i,j) = inimetricval
1394 grid(ng) % yv(i,j) = inimetricval
1396#if defined ICESHELF && defined SOLVE3D
1397 grid(ng) % IcePress(i,j) = inival
1398 grid(ng) % zice(i,j) = inival
1402 grid(ng) % pmask(i,j) = inival
1403 grid(ng) % rmask(i,j) = inimetricval
1404 grid(ng) % umask(i,j) = inimetricval
1405 grid(ng) % vmask(i,j) = inimetricval
1406# if defined AVERAGES || \
1407 (defined ad_averages && defined adjoint) || \
1408 (defined rp_averages && defined tl_ioms) || \
1409 (defined tl_averages && defined tangent)
1410 grid(ng) % pmask_avg(i,j) = inival
1411 grid(ng) % rmask_avg(i,j) = inival
1412 grid(ng) % umask_avg(i,j) = inival
1413 grid(ng) % vmask_avg(i,j) = inival
1416 grid(ng) % pmask_dia(i,j) = inival
1417 grid(ng) % rmask_dia(i,j) = inival
1418 grid(ng) % umask_dia(i,j) = inival
1419 grid(ng) % vmask_dia(i,j) = inival
1421 grid(ng) % pmask_full(i,j) = inival
1422 grid(ng) % rmask_full(i,j) = inival
1423 grid(ng) % umask_full(i,j) = inival
1424 grid(ng) % vmask_full(i,j) = inival
1428 grid(ng) % pmask_wet(i,j) = inival
1429 grid(ng) % rmask_wet(i,j) = inival
1430 grid(ng) % umask_wet(i,j) = inival
1431 grid(ng) % vmask_wet(i,j) = inival
1433 grid(ng) % rmask_wet_avg(i,j) = inival
1437#if defined AD_SENSITIVITY || defined I4DVAR_ANA_SENSITIVITY || \
1438 defined opt_observations || defined sensitivity_4dvar || \
1440 grid(ng) % Rscope(i,j) = inival
1441 grid(ng) % Uscope(i,j) = inival
1442 grid(ng) % Vscope(i,j) = inival
1449 grid(ng) % Hz(i,j,k) = inival
1450 grid(ng) % Huon(i,j,k) = inival
1451 grid(ng) % Hvom(i,j,k) = inival
1452 grid(ng) % z0_r(i,j,k) = inival
1453 grid(ng) % z_r(i,j,k) = inival
1454 grid(ng) % z_v(i,j,k) = inival
1459 grid(ng) % z0_w(i,j,k) = inival
1460 grid(ng) % z_w(i,j,k) = inival
1465#if defined ADJUST_BOUNDARY && defined SOLVE3D
1466 grid(ng) % Hz_bry = inival
1470#if defined TANGENT || defined TL_IOMS
1474 IF ((model.eq.0).or.(model.eq.
itlm).or.(model.eq.
irpm))
THEN
1477 grid(ng) % tl_h(i,j) = inival
1482 grid(ng) % tl_Hz(i,j,k) = inival
1483 grid(ng) % tl_Huon(i,j,k) = inival
1484 grid(ng) % tl_Hvom(i,j,k) = inival
1485 grid(ng) % tl_z_r(i,j,k) = inival
1490 grid(ng) % tl_z_w(i,j,k) = inival
1495# if defined ADJUST_BOUNDARY && defined SOLVE3D
1496 grid(ng) % tl_Hz_bry = inival
1505 IF ((model.eq.0).or.(model.eq.
iadm))
THEN
1508 grid(ng) % ad_h(i,j) = inival
1513 grid(ng) % ad_Hz(i,j,k) = inival
1514 grid(ng) % ad_Huon(i,j,k) = inival
1515 grid(ng) % ad_Hvom(i,j,k) = inival
1516 grid(ng) % ad_z_r(i,j,k) = inival
1521 grid(ng) % ad_z_w(i,j,k) = inival
1526# if defined ADJUST_BOUNDARY && defined SOLVE3D
1527 grid(ng) % ad_Hz_bry = inival