Changeset 13369 for utils/tools/SIREN/src/grid_hgr.f90
- Timestamp:
- 2020-07-31T10:50:52+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
utils/tools/SIREN/src/grid_hgr.f90
r12080 r13369 7 7 !> 8 8 !> @details 9 !> ** Purpose : Compute the geographical position (in degre) of the 10 !> model grid-points, the horizontal scale factors (in meters) and 9 !> ** Purpose : Compute the geographical position (in degre) of the 10 !> model grid-points, the horizontal scale factors (in meters) and 11 11 !> the Coriolis factor (in s-1). 12 12 !> 13 13 !> ** Method : The geographical position of the model grid-points is 14 14 !> defined from analytical functions, fslam and fsphi, the derivatives of which gives the horizontal scale factors e1,e2. 15 !> Defining two function fslam and fsphi and their derivatives in the two horizontal directions (fse1 and fse2), 15 !> Defining two function fslam and fsphi and their derivatives in the two horizontal directions (fse1 and fse2), 16 16 !> the model grid-point position and scale factors are given by: 17 17 !> - t-point: … … 46 46 !> periodic, and the coriolis term again. 47 47 !> 48 !> ** Action : 48 !> ** Action : 49 49 !> - define glamt, glamu, glamv, glamf: longitude of t-, u-, v- and f-points (in degre) 50 50 !> - define gphit, gphiu, gphiv, gphit: latitude of t-, u-, v- and f-points (in degre) … … 60 60 !> 61 61 !> @date March, 1988 - Original code 62 !> @date January, 1996 62 !> @date January, 1996 63 63 !> - terrain following coordinates 64 !> @date February, 1997 64 !> @date February, 1997 65 65 !> - print mesh informations 66 66 !> @date November, 1999 … … 76 76 !> use of parameters in par_CONFIG-Rxx.h90, not in namelist 77 77 !> @date May, 2004 78 !> - A. Koch-Larrouy : Add Gyre configuration 78 !> - A. Koch-Larrouy : Add Gyre configuration 79 79 !> @date February, 2011 80 80 !> - G. Madec : add cell surface (e1e2t) 81 !> @date September, 2015 81 !> @date September, 2015 82 82 !> - J, Paul : rewrite to SIREN format from $Id: domhgr.F90 5506 2015-06-29 15:19:38Z clevy $ 83 83 !> @date October, 2016 84 84 !> - J, Paul : update from trunk (revision 6961): add wetting and drying, ice sheet coupling.. 85 !> - J, Paul : compute coriolis factor at f-point and at t-point 85 !> - J, Paul : compute coriolis factor at f-point and at t-point 86 86 !> - J, Paul : do not use anymore special case for ORCA grid 87 87 !> … … 135 135 PUBLIC :: tg_gphiv 136 136 PUBLIC :: tg_gphif 137 137 138 138 PUBLIC :: tg_e1t 139 139 PUBLIC :: tg_e1u 140 140 PUBLIC :: tg_e1v 141 141 PUBLIC :: tg_e1f 142 142 143 143 PUBLIC :: tg_e2t 144 144 PUBLIC :: tg_e2u 145 145 PUBLIC :: tg_e2v 146 146 PUBLIC :: tg_e2f 147 147 148 148 PUBLIC :: tg_ff_t 149 149 PUBLIC :: tg_ff_f … … 160 160 161 161 ! function and subroutine 162 PUBLIC :: grid_hgr_init 162 PUBLIC :: grid_hgr_init 163 163 PUBLIC :: grid_hgr_fill 164 164 PUBLIC :: grid_hgr_clean 165 PUBLIC :: grid_hgr_nam 165 PUBLIC :: grid_hgr_nam 166 166 167 167 PRIVATE :: grid_hgr__fill_curv … … 175 175 TYPE TNAMH 176 176 177 CHARACTER(LEN=lc) :: c_coord 178 INTEGER(i4) :: i_perio 179 180 INTEGER(i4) :: i_mshhgr 181 REAL(dp) :: d_ppglam0 182 REAL(dp) :: d_ppgphi0 183 177 CHARACTER(LEN=lc) :: c_coord 178 INTEGER(i4) :: i_perio 179 180 INTEGER(i4) :: i_mshhgr 181 REAL(dp) :: d_ppglam0 182 REAL(dp) :: d_ppgphi0 183 184 184 REAL(dp) :: d_ppe1_deg 185 185 REAL(dp) :: d_ppe2_deg 186 ! REAL(dp) :: d_ppe1_m 187 ! REAL(dp) :: d_ppe2_m 188 189 ! INTEGER(i4) :: i_cla 190 191 ! CHARACTER(LEN=lc) :: c_cfg 192 INTEGER(i4) :: i_cfg 193 LOGICAL :: l_bench 194 186 ! REAL(dp) :: d_ppe1_m 187 ! REAL(dp) :: d_ppe2_m 188 189 ! INTEGER(i4) :: i_cla 190 191 ! CHARACTER(LEN=lc) :: c_cfg 192 INTEGER(i4) :: i_cfg 193 LOGICAL :: l_bench 194 195 195 END TYPE 196 196 197 TYPE(TVAR), SAVE :: tg_tmask 197 TYPE(TVAR), SAVE :: tg_tmask 198 198 TYPE(TVAR), SAVE :: tg_umask 199 199 TYPE(TVAR), SAVE :: tg_vmask … … 203 203 ! TYPE(TVAR), SAVE :: tg_wvmask 204 204 205 TYPE(TVAR), SAVE :: tg_ssmask 205 TYPE(TVAR), SAVE :: tg_ssmask 206 206 ! TYPE(TVAR), SAVE :: tg_ssumask 207 207 ! TYPE(TVAR), SAVE :: tg_ssvmask … … 243 243 CONTAINS 244 244 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 245 SUBROUTINE grid_hgr_init(jpi, jpj, jpk, ld_domcfg) 245 SUBROUTINE grid_hgr_init(jpi, jpj, jpk, ld_domcfg) 246 246 !------------------------------------------------------------------- 247 247 !> @brief This subroutine initialise hgr structure … … 256 256 IMPLICIT NONE 257 257 258 ! Argument 258 ! Argument 259 259 INTEGER(i4), INTENT(IN) :: jpi 260 260 INTEGER(i4), INTENT(IN) :: jpj … … 320 320 tg_fmask = var_init('fmask' ,dl_tmp3D(:,:,:), dd_fill=dp_fill_i1, id_type=NF90_BYTE) 321 321 ENDIF 322 322 323 323 ! tg_wmask = var_init('wmask' ,dl_tmp3D(:,:,:), dd_fill=dp_fill_i1, id_type=NF90_BYTE) 324 324 ! tg_wumask = var_init('wumask' ,dl_tmp3D(:,:,:), dd_fill=dp_fill_i1, id_type=NF90_BYTE) … … 327 327 END SUBROUTINE grid_hgr_init 328 328 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 329 SUBROUTINE grid_hgr_clean(ld_domcfg) 329 SUBROUTINE grid_hgr_clean(ld_domcfg) 330 330 !------------------------------------------------------------------- 331 331 !> @brief This subroutine clean hgr structure … … 338 338 IMPLICIT NONE 339 339 340 ! Argument 340 ! Argument 341 341 LOGICAL , INTENT(IN) :: ld_domcfg 342 342 … … 397 397 !> @date September, 2015 - Initial version 398 398 !> 399 !> @param[in] cd_coord 400 !> @param[in] id_perio 399 !> @param[in] cd_coord 400 !> @param[in] id_perio 401 401 !> @param[in] cd_namelist 402 402 !> @return hgr namelist structure … … 405 405 IMPLICIT NONE 406 406 407 ! Argument 407 ! Argument 408 408 CHARACTER(LEN=*), INTENT(IN) :: cd_coord 409 INTEGER(i4) , INTENT(IN) :: id_perio 409 INTEGER(i4) , INTENT(IN) :: id_perio 410 410 CHARACTER(LEN=*), INTENT(IN) :: cd_namelist 411 411 412 412 ! function 413 413 TYPE(TNAMH) :: tf_namh … … 423 423 424 424 ! namhgr 425 INTEGER(i4) :: in_mshhgr = 0 425 INTEGER(i4) :: in_mshhgr = 0 426 426 REAL(dp) :: dn_ppglam0 = NF90_FILL_DOUBLE 427 427 REAL(dp) :: dn_ppgphi0 = NF90_FILL_DOUBLE … … 440 440 441 441 !---------------------------------------------------------------- 442 NAMELIST /namhgr/ & 443 & in_mshhgr, & !< type of horizontal mesh 442 NAMELIST /namhgr/ & 443 & in_mshhgr, & !< type of horizontal mesh 444 444 !< 0: curvilinear coordinate on the sphere read in coordinate.nc 445 445 !< 1: geographical mesh on the sphere with regular grid-spacing … … 461 461 ! & cn_cfg, & !< name of the configuration (orca) 462 462 & in_cfg, & !< resolution of the configuration (2,1,025..) 463 & ln_bench !< benchmark parameter (in_mshhgr = 5 ). 463 & ln_bench !< benchmark parameter (in_mshhgr = 5 ). 464 464 465 465 !---------------------------------------------------------------- … … 467 467 INQUIRE(FILE=TRIM(cd_namelist), EXIST=ll_exist) 468 468 IF( ll_exist )THEN 469 469 470 470 il_fileid=fct_getunit() 471 471 … … 491 491 CALL logger_error("GRID HGR NAM: closing "//TRIM(cd_namelist)) 492 492 ENDIF 493 493 494 494 tf_namh%c_coord = TRIM(cd_coord) 495 495 tf_namh%i_perio = id_perio … … 518 518 END FUNCTION grid_hgr_nam 519 519 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 520 SUBROUTINE grid_hgr_fill(td_nam, jpi, jpj, ld_domcfg) 520 SUBROUTINE grid_hgr_fill(td_nam, jpi, jpj, ld_domcfg) 521 521 !------------------------------------------------------------------- 522 522 !> @brief This subroutine fill horizontal mesh (hgr structure) … … 532 532 IMPLICIT NONE 533 533 534 ! Argument 534 ! Argument 535 535 TYPE(TNAMH), INTENT(IN) :: td_nam 536 536 INTEGER(i4), INTENT(IN) :: jpi … … 555 555 & TRIM(fct_str(td_nam%d_ppe2_deg )) ) 556 556 ! CALL logger_info(' zonal grid-spacing (meters) ppe1_m = '//& 557 ! & TRIM(fct_str(td_nam%d_ppe1_m )) ) 557 ! & TRIM(fct_str(td_nam%d_ppe1_m )) ) 558 558 ! CALL logger_info(' meridional grid-spacing (meters) ppe2_m = '//& 559 ! & TRIM(fct_str(td_nam%d_ppe2_m )) ) 559 ! & TRIM(fct_str(td_nam%d_ppe2_m )) ) 560 560 ENDIF 561 561 … … 594 594 ! create coriolis factor 595 595 CALL grid_hgr__fill_coriolis(td_nam,jpi)!,jpj) 596 596 597 597 ! Control of domain for symetrical condition 598 598 ! ------------------------------------------ … … 609 609 ! --------------------------------------------------------------- 610 610 IF( .NOT. ld_domcfg )THEN 611 CALL grid_hgr__angle(td_nam,jpi,jpj) 611 CALL grid_hgr__angle(td_nam,jpi,jpj) 612 612 ENDIF 613 613 614 614 END SUBROUTINE grid_hgr_fill 615 615 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 SUBROUTINE grid_hgr__fill_curv(td_nam)!,jpi,jpj) 616 SUBROUTINE grid_hgr__fill_curv(td_nam)!,jpi,jpj) 617 617 !------------------------------------------------------------------- 618 618 !> @brief This subroutine fill horizontal mesh (hgr structure) … … 626 626 !> @param[in] td_nam 627 627 ! @param[in] jpi 628 ! @param[in] jpj 628 ! @param[in] jpj 629 629 !------------------------------------------------------------------- 630 630 631 631 IMPLICIT NONE 632 632 633 ! Argument 633 ! Argument 634 634 TYPE(TNAMH), INTENT(IN) :: td_nam 635 635 ! INTEGER(i4), INTENT(IN) :: jpi … … 652 652 ELSE 653 653 CALL logger_fatal("GRID HGR FILL: no input coordinates file found. "//& 654 & "check namelist") 654 & "check namelist") 655 655 ENDIF 656 656 … … 702 702 ! ! Gibraltar Strait (e2u = 20 km) 703 703 ! ii0 = 139 ; ii1 = 140 704 ! ij0 = 102 ; ij1 = 102 704 ! ij0 = 102 ; ij1 = 102 705 705 ! ! e2u = 20 km 706 706 ! tg_e2u%d_value(ii0:ii1,ij0:ij1,1,1) = 20.e3 … … 708 708 ! ! 709 709 ! ! Bab el Mandeb (e2u = 18 km) 710 ! ii0 = 160 ; ii1 = 160 711 ! ij0 = 88 ; ij1 = 88 710 ! ii0 = 160 ; ii1 = 160 711 ! ij0 = 88 ; ij1 = 88 712 712 ! ! e1v = 18 km 713 713 ! tg_e1v%d_value(ii0:ii1,ij0:ij1,1,1) = 18.e3 … … 720 720 ! ! Danish Straits 721 721 ! ii0 = 145 ; ii1 = 146 722 ! ij0 = 116 ; ij1 = 116 722 ! ij0 = 116 ; ij1 = 116 723 723 ! ! e2u = 10 km 724 724 ! tg_e2u%d_value(ii0:ii1,ij0:ij1,1,1) = 10.e3 … … 737 737 ! ! Gibraltar Strait (e2u = 20 km) 738 738 ! ii0 = 282 ; ii1 = 283 739 ! ij0 = 201 + isrow ; ij1 = 241 - isrow 739 ! ij0 = 201 + isrow ; ij1 = 241 - isrow 740 740 ! ! e2u = 20 km 741 741 ! tg_e2u%d_value(ii0:ii1,ij0:ij1,1,1) = 20.e3 … … 850 850 END SUBROUTINE grid_hgr__fill_curv 851 851 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 852 SUBROUTINE grid_hgr__fill_reg(td_nam, jpi, jpj) 852 SUBROUTINE grid_hgr__fill_reg(td_nam, jpi, jpj) 853 853 !------------------------------------------------------------------- 854 854 !> @brief This subroutine fill horizontal mesh (hgr structure) … … 860 860 !> @param[in] td_nam 861 861 !> @param[in] jpi 862 !> @param[in] jpj 862 !> @param[in] jpj 863 863 !------------------------------------------------------------------- 864 864 865 865 IMPLICIT NONE 866 866 867 ! Argument 867 ! Argument 868 868 TYPE(TNAMH), INTENT(IN) :: td_nam 869 869 INTEGER(i4), INTENT(IN) :: jpi … … 913 913 END SUBROUTINE grid_hgr__fill_reg 914 914 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 915 SUBROUTINE grid_hgr__fill_plan(td_nam, jpi, jpj) 915 SUBROUTINE grid_hgr__fill_plan(td_nam, jpi, jpj) 916 916 !------------------------------------------------------------------- 917 917 !> @brief This subroutine fill horizontal mesh (hgr structure) … … 923 923 !> @param[in] td_nam 924 924 !> @param[in] jpi 925 !> @param[in] jpj 925 !> @param[in] jpj 926 926 !------------------------------------------------------------------- 927 927 928 928 IMPLICIT NONE 929 929 930 ! Argument 930 ! Argument 931 931 TYPE(TNAMH), INTENT(IN) :: td_nam 932 932 INTEGER(i4), INTENT(IN) :: jpi … … 961 961 tg_glamv%d_value(ji,jj,1,1) = tg_glamt%d_value(ji,jj,1,1) 962 962 tg_glamf%d_value(ji,jj,1,1) = tg_glamu%d_value(ji,jj,1,1) 963 963 964 964 !tg_gphit%d_value(ji,jj,1,1) = dl_gphi0 + td_nam%d_ppe2_m * 1.e-3 * ( FLOAT( jj - 1 ) ) 965 965 tg_gphit%d_value(ji,jj,1,1) = dl_gphi0 + td_nam%d_ppe2_deg * 1.e-3 * ( FLOAT( jj - 1 ) ) … … 973 973 ! Horizontal scale factors (in meters) 974 974 ! ====== 975 ! tg_e1t%d_value(:,:,1,1) = td_nam%d_ppe1_m 976 ! tg_e1u%d_value(:,:,1,1) = td_nam%d_ppe1_m 977 ! tg_e1v%d_value(:,:,1,1) = td_nam%d_ppe1_m 978 ! tg_e1f%d_value(:,:,1,1) = td_nam%d_ppe1_m 979 tg_e1t%d_value(:,:,1,1) = td_nam%d_ppe1_deg 980 tg_e1u%d_value(:,:,1,1) = td_nam%d_ppe1_deg 981 tg_e1v%d_value(:,:,1,1) = td_nam%d_ppe1_deg 982 tg_e1f%d_value(:,:,1,1) = td_nam%d_ppe1_deg 975 ! tg_e1t%d_value(:,:,1,1) = td_nam%d_ppe1_m 976 ! tg_e1u%d_value(:,:,1,1) = td_nam%d_ppe1_m 977 ! tg_e1v%d_value(:,:,1,1) = td_nam%d_ppe1_m 978 ! tg_e1f%d_value(:,:,1,1) = td_nam%d_ppe1_m 979 tg_e1t%d_value(:,:,1,1) = td_nam%d_ppe1_deg 980 tg_e1u%d_value(:,:,1,1) = td_nam%d_ppe1_deg 981 tg_e1v%d_value(:,:,1,1) = td_nam%d_ppe1_deg 982 tg_e1f%d_value(:,:,1,1) = td_nam%d_ppe1_deg 983 983 984 984 ! tg_e2t%d_value(:,:,1,1) = td_nam%d_ppe2_m … … 993 993 END SUBROUTINE grid_hgr__fill_plan 994 994 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 995 SUBROUTINE grid_hgr__fill_merc(td_nam, jpi, jpj) 995 SUBROUTINE grid_hgr__fill_merc(td_nam, jpi, jpj) 996 996 !------------------------------------------------------------------- 997 997 !> @brief This subroutine fill horizontal mesh (hgr structure) … … 1003 1003 !> @param[in] td_nam 1004 1004 !> @param[in] jpi 1005 !> @param[in] jpj 1005 !> @param[in] jpj 1006 1006 !------------------------------------------------------------------- 1007 1007 1008 1008 IMPLICIT NONE 1009 1009 1010 ! Argument 1010 ! Argument 1011 1011 TYPE(TNAMH), INTENT(IN) :: td_nam 1012 1012 INTEGER(i4), INTENT(IN) :: jpi … … 1073 1073 END SUBROUTINE grid_hgr__fill_merc 1074 1074 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1075 SUBROUTINE grid_hgr__fill_gyre(td_nam, jpi, jpj) 1075 SUBROUTINE grid_hgr__fill_gyre(td_nam, jpi, jpj) 1076 1076 !------------------------------------------------------------------- 1077 1077 !> @brief This subroutine fill horizontal mesh (hgr structure) … … 1088 1088 IMPLICIT NONE 1089 1089 1090 ! Argument 1090 ! Argument 1091 1091 TYPE(TNAMH), INTENT(IN) :: td_nam 1092 1092 INTEGER(i4), INTENT(IN) :: jpi … … 1114 1114 zphi1 = 29 1115 1115 ! resolution in meters 1116 ze1 = 106000. / FLOAT(td_nam%i_cfg) 1116 ze1 = 106000. / FLOAT(td_nam%i_cfg) 1117 1117 ! benchmark: forced the resolution to be about 100 km 1118 IF( td_nam%l_bench ) ze1 = 106000.e0 1118 IF( td_nam%l_bench ) ze1 = 106000.e0 1119 1119 zsin_alpha = - SQRT( 2. ) / 2. 1120 1120 zcos_alpha = SQRT( 2. ) / 2. … … 1145 1145 & + zim1 * ze1deg * zcos_alpha & 1146 1146 & + zjm05 * ze1deg * zsin_alpha 1147 tg_gphiu%d_value(ji,jj,1,1) = dl_gphi0 & 1147 tg_gphiu%d_value(ji,jj,1,1) = dl_gphi0 & 1148 1148 & - zim1 * ze1deg * zsin_alpha & 1149 1149 & + zjm05 * ze1deg * zcos_alpha … … 1161 1161 ! Horizontal scale factors (in meters) 1162 1162 ! ====== 1163 tg_e1t%d_value(:,:,1,1) = ze1 1164 tg_e1u%d_value(:,:,1,1) = ze1 1165 tg_e1v%d_value(:,:,1,1) = ze1 1166 tg_e1f%d_value(:,:,1,1) = ze1 1163 tg_e1t%d_value(:,:,1,1) = ze1 1164 tg_e1u%d_value(:,:,1,1) = ze1 1165 tg_e1v%d_value(:,:,1,1) = ze1 1166 tg_e1f%d_value(:,:,1,1) = ze1 1167 1167 1168 1168 tg_e2t%d_value(:,:,1,1) = ze1 … … 1173 1173 END SUBROUTINE grid_hgr__fill_gyre 1174 1174 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1175 SUBROUTINE grid_hgr__fill_coriolis(td_nam, jpi)!,jpj) 1175 SUBROUTINE grid_hgr__fill_coriolis(td_nam, jpi)!,jpj) 1176 1176 !------------------------------------------------------------------- 1177 1177 !> @brief This subroutine fill coriolis factor … … 1189 1189 IMPLICIT NONE 1190 1190 1191 ! Argument 1191 ! Argument 1192 1192 TYPE(TNAMH), INTENT(IN) :: td_nam 1193 1193 INTEGER(i4), INTENT(IN) :: jpi … … 1196 1196 ! local variable 1197 1197 REAL(dp) :: zbeta 1198 REAL(dp) :: zphi0 1198 REAL(dp) :: zphi0 1199 1199 REAL(dp) :: zf0 1200 1200 … … 1210 1210 tg_ff_t%d_value(:,:,1,1) = 2. * dp_omega * SIN(dp_deg2rad * tg_gphit%d_value(:,:,1,1)) ! at t-point 1211 1211 1212 CASE ( 2 ) ! f-plane at ppgphi0 1212 CASE ( 2 ) ! f-plane at ppgphi0 1213 1213 1214 1214 tg_ff_f%d_value(:,:,1,1) = 2. * dp_omega * SIN( dp_deg2rad * td_nam%d_ppgphi0 ) … … 1258 1258 !> 1259 1259 !> ** Action : Compute (gsint, gcost, gsinu, gcosu, gsinv, gcosv, gsinf, gcosf) arrays: 1260 !> sinus and cosinus of the angle between the north-south axe and the 1260 !> sinus and cosinus of the angle between the north-south axe and the 1261 1261 !> j-direction at t, u, v and f-points 1262 1262 !> … … 1283 1283 1284 1284 ! local variable 1285 REAL(dp) :: zlam, zphi 1286 REAL(dp) :: zlan, zphh 1285 REAL(dp) :: zlam, zphi 1286 REAL(dp) :: zlan, zphh 1287 1287 REAL(dp) :: zxnpt, zynpt, znnpt ! x,y components and norm of the vector: T point to North Pole 1288 1288 REAL(dp) :: zxnpu, zynpu, znnpu ! x,y components and norm of the vector: U point to North Pole … … 1431 1431 1432 1432 ! lateral boundary cond.: T-, U-, V-, F-pts, sgn 1433 CALL lbc_lnk( tg_gcost%d_value(:,:,1,1), 'T', td_nam%i_perio, -1._dp ) 1434 CALL lbc_lnk( tg_gcosu%d_value(:,:,1,1), 'U', td_nam%i_perio, -1._dp ) 1435 CALL lbc_lnk( tg_gcosv%d_value(:,:,1,1), 'V', td_nam%i_perio, -1._dp ) 1436 CALL lbc_lnk( tg_gcosf%d_value(:,:,1,1), 'F', td_nam%i_perio, -1._dp ) 1433 CALL lbc_lnk( tg_gcost%d_value(:,:,1,1), 'T', td_nam%i_perio, -1._dp ) 1434 CALL lbc_lnk( tg_gcosu%d_value(:,:,1,1), 'U', td_nam%i_perio, -1._dp ) 1435 CALL lbc_lnk( tg_gcosv%d_value(:,:,1,1), 'V', td_nam%i_perio, -1._dp ) 1436 CALL lbc_lnk( tg_gcosf%d_value(:,:,1,1), 'F', td_nam%i_perio, -1._dp ) 1437 1437 1438 1438 CALL lbc_lnk( tg_gsint%d_value(:,:,1,1), 'T', td_nam%i_perio, -1._dp )
Note: See TracChangeset
for help on using the changeset viewer.