74 REAL(KIND=JPRD) :: lon, lat
122 REAL(KIND=JPRD) FUNCTION angle_domain_rs(ALPHA,PI,DOM,UNIT)
RESULT (BETA)
123 REAL(KIND=JPRD),
INTENT(IN) :: ALPHA
124 CHARACTER (LEN=2),
INTENT(IN),
OPTIONAL :: DOM
125 CHARACTER (LEN=1),
INTENT(IN),
OPTIONAL :: UNIT
126 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
129 REAL(KIND=JPRD) :: CVT, TPI, M
130 CHARACTER (LEN=2) :: TDOM
131 CHARACTER (LEN=1) :: TUNIT
132 REAL(KIND=JPRD) :: ZHOOK_HANDLE
134 IF (
lhook)
CALL dr_hook(
'EGGANGLES:ANGLE_DOMAIN_RS',0,zhook_handle)
135 IF (
PRESENT(pi))
THEN 138 tpi = asin(1.0_jprd)*2.0_jprd
140 IF (
PRESENT(dom))
THEN 141 IF ((dom==
'0+').OR.(dom==
'-+'))
THEN 149 IF (
PRESENT(unit))
THEN 150 IF ((unit==
'R').OR.(unit==
'D'))
THEN 167 beta = (m-cvt*mod(
REAL(INT(ALPHA/CVT),KIND=JPRD),2.0_JPRD))*sign(1.0_jprd,alpha)*sign(1.0_jprd,m)
169 m = mod(alpha,2.0_jprd*cvt)
170 beta = m-2.0_jprd*cvt*(sign(0.5_jprd,alpha)-0.5_jprd)
172 IF (
lhook)
CALL dr_hook(
'EGGANGLES:ANGLE_DOMAIN_RS',1,zhook_handle)
176 type(
lola),
INTENT(IN) :: alpha
177 CHARACTER (LEN=2),
INTENT(IN),
OPTIONAL :: DOM
178 CHARACTER (LEN=1),
INTENT(IN),
OPTIONAL :: UNIT
179 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
181 REAL(KIND=JPRD) :: TPI
182 CHARACTER (LEN=2) :: TDOM
183 CHARACTER (LEN=1) :: TUNIT
184 REAL(KIND=JPRD) :: ZHOOK_HANDLE
186 IF (
lhook)
CALL dr_hook(
'EGGANGLES:ANGLE_DOMAIN_LOLAS',0,zhook_handle)
187 IF (
PRESENT(pi))
THEN 190 tpi = asin(1.0_jprd)*2.0_jprd
192 IF (
PRESENT(dom))
THEN 193 IF ((dom==
'0+').OR.(dom==
'-+'))
THEN 201 IF (
PRESENT(unit))
THEN 202 IF ((unit==
'R').OR.(unit==
'D'))
THEN 213 IF (
lhook)
CALL dr_hook(
'EGGANGLES:ANGLE_DOMAIN_LOLAS',1,zhook_handle)
217 REAL(KIND=JPRD),
DIMENSION(:),
INTENT(IN) :: ALPHA
218 CHARACTER (LEN=2),
INTENT(IN),
OPTIONAL :: DOM
219 CHARACTER (LEN=1),
INTENT(IN),
OPTIONAL :: UNIT
220 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
221 REAL(KIND=JPRD),
DIMENSION(SIZE(ALPHA)) :: BETA
223 REAL(KIND=JPRD) :: CVT, TPI
224 REAL(KIND=JPRD),
DIMENSION(SIZE(ALPHA)) :: Z_M
225 CHARACTER (LEN=2) :: TDOM
226 CHARACTER (LEN=1) :: TUNIT
227 REAL(KIND=JPRD) :: ZHOOK_HANDLE
229 IF (
lhook)
CALL dr_hook(
'EGGANGLES:ANGLE_DOMAIN_RV',0,zhook_handle)
230 IF (
PRESENT(pi))
THEN 233 tpi = asin(1.0_jprd)*2.0_jprd
235 IF (
PRESENT(dom))
THEN 236 IF ((dom==
'0+').OR.(dom==
'-+'))
THEN 244 IF (
PRESENT(unit))
THEN 245 IF ((unit==
'R').OR.(unit==
'D'))
THEN 261 z_m(:) = mod(alpha(:),cvt)
262 beta = (z_m(:)-cvt*mod(
REAL(INT(ALPHA(:)/CVT),KIND=JPRD),2.0_JPRD))*sign(1.0_jprd,alpha(:))*sign(1.0_jprd,z_m(:))
264 z_m(:) = mod(alpha(:),2.0_jprd*cvt)
265 beta = z_m(:)-2.0_jprd*cvt*(sign(0.5_jprd,alpha(:))-0.5_jprd)
267 IF (
lhook)
CALL dr_hook(
'EGGANGLES:ANGLE_DOMAIN_RV',1,zhook_handle)
271 type(
lola),
DIMENSION(:),
INTENT(IN) :: yl_alpha
272 CHARACTER (LEN=2),
INTENT(IN),
OPTIONAL :: DOM
273 CHARACTER (LEN=1),
INTENT(IN),
OPTIONAL :: UNIT
274 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
275 type(
lola),
DIMENSION(SIZE(YL_ALPHA)) :: yd_beta
277 REAL(KIND=JPRD) :: TPI
278 CHARACTER (LEN=2) :: TDOM
279 CHARACTER (LEN=1) :: TUNIT
280 REAL(KIND=JPRD) :: ZHOOK_HANDLE
282 IF (
lhook)
CALL dr_hook(
'EGGANGLES:ANGLE_DOMAIN_LOLAV',0,zhook_handle)
283 IF (
PRESENT(pi))
THEN 286 tpi = asin(1.0_jprd)*2.0_jprd
288 IF (
PRESENT(dom))
THEN 289 IF ((dom==
'0+').OR.(dom==
'-+'))
THEN 297 IF (
PRESENT(unit))
THEN 298 IF ((unit==
'R').OR.(unit==
'D'))
THEN 307 yd_beta(:)%LON =
angle_domain(yl_alpha(:)%LON,tpi,tdom,tunit)
308 yd_beta(:)%LAT = yl_alpha(:)%LAT
309 IF (
lhook)
CALL dr_hook(
'EGGANGLES:ANGLE_DOMAIN_LOLAV',1,zhook_handle)
312 INTEGER(KIND=JPIM) FUNCTION val_lat_s(LAT,NUM_ERR,PI,UNIT)
RESULT(ETAT)
313 REAL(KIND=JPRD),
INTENT(IN) :: LAT
314 CHARACTER (LEN=1),
INTENT(IN),
OPTIONAL :: UNIT
315 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
316 INTEGER(KIND=JPIM),
INTENT(IN),
OPTIONAL :: NUM_ERR
318 INTEGER(KIND=JPIM) :: TNE
319 REAL(KIND=JPRD) :: TPI, LATMXABS
320 CHARACTER (LEN=1) :: TUNIT
321 REAL(KIND=JPRD) :: ZHOOK_HANDLE
323 IF (
lhook)
CALL dr_hook(
'EGGANGLES:VAL_LAT_S',0,zhook_handle)
324 IF (
PRESENT(num_err))
THEN 329 IF (
PRESENT(pi))
THEN 332 tpi = asin(1.0_jprd)*2.0_jprd
334 IF (
PRESENT(unit))
THEN 335 IF ((unit==
'R').OR.(unit==
'D'))
THEN 345 latmxabs = tpi/2.0_jprd
350 IF (abs(lat) > latmxabs)
THEN 355 IF (
lhook)
CALL dr_hook(
'EGGANGLES:VAL_LAT_S',1,zhook_handle)
358 INTEGER(KIND=JPIM) FUNCTION val_lat_v(P_LAT,NUM_ERR,PI,UNIT)
RESULT(ETAT)
359 REAL(KIND=JPRD),
DIMENSION(:),
INTENT(IN) :: P_LAT
360 CHARACTER (LEN=1),
INTENT(IN),
OPTIONAL :: UNIT
361 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
362 INTEGER(KIND=JPIM),
INTENT(IN),
OPTIONAL :: NUM_ERR
364 INTEGER(KIND=JPIM) :: TNE
365 REAL(KIND=JPRD) :: TPI, Z_LATMXABS
366 CHARACTER (LEN=1) :: TUNIT
367 REAL(KIND=JPRD) :: ZHOOK_HANDLE
369 IF (
lhook)
CALL dr_hook(
'EGGANGLES:VAL_LAT_V',0,zhook_handle)
370 IF (
PRESENT(num_err))
THEN 375 IF (
PRESENT(pi))
THEN 378 tpi = asin(1.0_jprd)*2.0_jprd
380 IF (
PRESENT(unit))
THEN 381 IF ((unit==
'R').OR.(unit==
'D'))
THEN 391 z_latmxabs = tpi/2.0_jprd
393 z_latmxabs = 90.0_jprd
396 IF (any(abs(p_lat(:)) > z_latmxabs))
THEN 401 IF (
lhook)
CALL dr_hook(
'EGGANGLES:VAL_LAT_V',1,zhook_handle)
404 INTEGER(KIND=JPIM) FUNCTION val_lon_s(LON,NUM_ERR,PI,DOM,UNIT)
RESULT(ETAT)
405 REAL(KIND=JPRD),
INTENT(IN) :: LON
406 CHARACTER (LEN=2),
INTENT(IN),
OPTIONAL :: DOM
407 CHARACTER (LEN=1),
INTENT(IN),
OPTIONAL :: UNIT
408 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
409 INTEGER(KIND=JPIM),
INTENT(IN),
OPTIONAL :: NUM_ERR
411 INTEGER(KIND=JPIM) :: TNE
412 REAL(KIND=JPRD) :: TPI, CVT, S, LONMIN, LONMAX
413 CHARACTER (LEN=2) :: TDOM
414 CHARACTER (LEN=1) :: TUNIT
415 REAL(KIND=JPRD) :: ZHOOK_HANDLE
417 IF (
lhook)
CALL dr_hook(
'EGGANGLES:VAL_LON_S',0,zhook_handle)
418 IF (
PRESENT(num_err))
THEN 423 IF (
PRESENT(pi))
THEN 426 tpi = asin(1.0_jprd)*2.0_jprd
428 IF (
PRESENT(dom))
THEN 429 IF ((dom==
'0+').OR.(dom==
'-+'))
THEN 437 IF (
PRESENT(unit))
THEN 438 IF ((unit==
'R').OR.(unit==
'D'))
THEN 458 lonmax =(2.0_jprd +s)*cvt
460 IF ((lon < lonmin).OR.(lon >= lonmax))
THEN 465 IF (
lhook)
CALL dr_hook(
'EGGANGLES:VAL_LON_S',1,zhook_handle)
468 INTEGER(KIND=JPIM) FUNCTION val_lon_v(LON,NUM_ERR,PI,DOM,UNIT)
RESULT(ETAT)
469 REAL(KIND=JPRD),
DIMENSION(:),
INTENT(IN) :: LON
470 CHARACTER (LEN=2),
INTENT(IN),
OPTIONAL :: DOM
471 CHARACTER (LEN=1),
INTENT(IN),
OPTIONAL :: UNIT
472 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
473 INTEGER(KIND=JPIM),
INTENT(IN),
OPTIONAL :: NUM_ERR
475 INTEGER(KIND=JPIM) :: TNE
476 REAL(KIND=JPRD) :: TPI, Z_CVT, Z_S, Z_LONMIN, Z_LONMAX
477 CHARACTER (LEN=2) :: TDOM
478 CHARACTER (LEN=1) :: TUNIT
479 REAL(KIND=JPRD) :: ZHOOK_HANDLE
481 IF (
lhook)
CALL dr_hook(
'EGGANGLES:VAL_LON_V',0,zhook_handle)
482 IF (
PRESENT(num_err))
THEN 487 IF (
PRESENT(pi))
THEN 490 tpi = asin(1.0_jprd)*2.0_jprd
492 IF (
PRESENT(dom))
THEN 493 IF ((dom==
'0+').OR.(dom==
'-+'))
THEN 501 IF (
PRESENT(unit))
THEN 502 IF ((unit==
'R').OR.(unit==
'D'))
THEN 522 z_lonmax =(2.0_jprd +z_s)*z_cvt
524 IF ((any(lon(:) < z_lonmin)).OR.(any(lon(:) >= z_lonmax)))
THEN 529 IF (
lhook)
CALL dr_hook(
'EGGANGLES:VAL_LON_V',1,zhook_handle)
532 INTEGER(KIND=JPIM) FUNCTION val_coord_s(PT_COORD,NUM_ERR,PI,DOM,UNIT)
RESULT(ETAT)
533 type(
lola),
INTENT(IN) :: pt_coord
534 CHARACTER (LEN=2),
INTENT(IN),
OPTIONAL :: DOM
535 CHARACTER (LEN=1),
INTENT(IN),
OPTIONAL :: UNIT
536 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
537 INTEGER(KIND=JPIM),
INTENT(IN),
OPTIONAL :: NUM_ERR
539 INTEGER(KIND=JPIM) :: TNE
540 REAL(KIND=JPRD) :: TPI
541 CHARACTER (LEN=2) :: TDOM
542 CHARACTER (LEN=1) :: TUNIT
543 REAL(KIND=JPRD) :: ZHOOK_HANDLE
545 IF (
lhook)
CALL dr_hook(
'EGGANGLES:VAL_COORD_S',0,zhook_handle)
546 IF (
PRESENT(num_err))
THEN 551 IF (
PRESENT(pi))
THEN 554 tpi = asin(1.0_jprd)*2.0_jprd
556 IF (
PRESENT(dom))
THEN 557 IF ((dom==
'0+').OR.(dom==
'-+'))
THEN 565 IF (
PRESENT(unit))
THEN 566 IF ((unit==
'R').OR.(unit==
'D'))
THEN 575 IF ((
val_lon(pt_coord%LON,tne,tpi,tdom,tunit) == 1_jpim).AND.(
val_lat(pt_coord%LAT,tne,tpi,tunit) == 1_jpim))
THEN 580 IF (
lhook)
CALL dr_hook(
'EGGANGLES:VAL_COORD_S',1,zhook_handle)
583 INTEGER(KIND=JPIM) FUNCTION val_coord_v(YD_PT_COORD,K_NUM_ERR,PI,CD_DOM,CD_UNIT)
RESULT(ETAT)
584 type(
lola),
DIMENSION(:),
INTENT(IN) :: yd_pt_coord
585 CHARACTER (LEN=2),
INTENT(IN),
OPTIONAL :: CD_DOM
586 CHARACTER (LEN=1),
INTENT(IN),
OPTIONAL :: CD_UNIT
587 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
588 INTEGER(KIND=JPIM),
INTENT(IN),
OPTIONAL :: K_NUM_ERR
590 INTEGER(KIND=JPIM) :: I_TNE
591 CHARACTER (LEN=2) :: CL_TDOM
592 REAL(KIND=JPRD) :: Z_TPI
593 CHARACTER (LEN=1) :: CL_TUNIT
594 REAL(KIND=JPRD) :: ZHOOK_HANDLE
596 IF (
lhook)
CALL dr_hook(
'EGGANGLES:VAL_COORD_V',0,zhook_handle)
597 IF (
PRESENT(k_num_err))
THEN 602 IF (
PRESENT(pi))
THEN 605 z_tpi = asin(1.0_jprd)*2.0_jprd
607 IF (
PRESENT(cd_dom))
THEN 608 IF ((cd_dom==
'0+').OR.(cd_dom==
'-+'))
THEN 616 IF (
PRESENT(cd_unit))
THEN 617 IF ((cd_unit==
'R').OR.(cd_unit==
'D'))
THEN 626 IF ((
val_lon(yd_pt_coord(:)%LON,i_tne,z_tpi,cl_tdom,cl_tunit) == 1_jpim).AND. &
627 & (
val_lat(yd_pt_coord(:)%LAT,i_tne,z_tpi,cl_tunit) == 1_jpim))
THEN 632 IF (
lhook)
CALL dr_hook(
'EGGANGLES:VAL_COORD_V',1,zhook_handle)
635 TYPE(
lola) FUNCTION LOLAR_S (coord_deg) RESULT (coord_rad)
637 TYPE(
lola),
INTENT(IN) :: COORD_DEG
639 REAL(KIND=JPRD) :: TPI,DTR
640 REAL(KIND=JPRD) :: ZHOOK_HANDLE
642 IF (
lhook)
CALL dr_hook(
'EGGANGLES:LOLAR_S',0,zhook_handle)
643 tpi = asin(1.0_jprd)*2.0_jprd
645 coord_rad%LON = coord_deg%LON*dtr
646 coord_rad%LAT = coord_deg%LAT*dtr
647 IF (
lhook)
CALL dr_hook(
'EGGANGLES:LOLAR_S',1,zhook_handle)
650 FUNCTION lolar_v (COORD_DEG)
RESULT (COORD_RAD)
652 TYPE(
lola),
DIMENSION(:),
INTENT(IN) :: COORD_DEG
653 TYPE(
lola),
DIMENSION(SIZE(COORD_DEG)) :: COORD_RAD
655 REAL(KIND=JPRD) :: TPI,DTR
656 REAL(KIND=JPRD) :: ZHOOK_HANDLE
658 IF (lhook)
CALL dr_hook(
'EGGANGLES:LOLAR_V',0,zhook_handle)
659 tpi = asin(1.0_jprd)*2.0_jprd
661 coord_rad(:)%LON = coord_deg(:)%LON*dtr
662 coord_rad(:)%LAT = coord_deg(:)%LAT*dtr
663 IF (lhook)
CALL dr_hook(
'EGGANGLES:LOLAR_V',1,zhook_handle)
666 TYPE(
lola) FUNCTION LOLAD_S (coord_rad) RESULT (coord_deg)
668 TYPE(
lola),
INTENT(IN) :: COORD_RAD
670 REAL(KIND=JPRD) :: TPI,RTD
671 REAL(KIND=JPRD) :: ZHOOK_HANDLE
673 IF (lhook)
CALL dr_hook(
'EGGANGLES:LOLAD_S',0,zhook_handle)
674 tpi = asin(1.0_jprd)*2.0_jprd
676 coord_deg%LON = coord_rad%LON*rtd
677 coord_deg%LAT = coord_rad%LAT*rtd
678 IF (lhook)
CALL dr_hook(
'EGGANGLES:LOLAD_S',1,zhook_handle)
681 FUNCTION lolad_v (COORD_RAD)
RESULT (COORD_DEG)
683 TYPE(
lola),
DIMENSION(:),
INTENT(IN) :: COORD_RAD
684 TYPE(
lola),
DIMENSION(SIZE(COORD_RAD)) :: COORD_DEG
686 REAL(KIND=JPRD) :: TPI,RTD
687 REAL(KIND=JPRD) :: ZHOOK_HANDLE
689 IF (lhook)
CALL dr_hook(
'EGGANGLES:LOLAD_V',0,zhook_handle)
690 tpi = asin(1.0_jprd)*2.0_jprd
692 coord_deg(:)%LON = coord_rad(:)%LON*rtd
693 coord_deg(:)%LAT = coord_rad(:)%LAT*rtd
694 IF (lhook)
CALL dr_hook(
'EGGANGLES:LOLAD_V',1,zhook_handle)
701 REAL(KIND=JPRD),
INTENT(IN) :: COSINUS,SINUS
703 REAL(KIND=JPRD) :: ZHOOK_HANDLE
705 IF (lhook)
CALL dr_hook(
'EGGANGLES:COSIN_TO_ANGLE_S',0,zhook_handle)
706 angle =
p_acos(cosinus)*sign(1.0_jprd,sinus)
707 IF (lhook)
CALL dr_hook(
'EGGANGLES:COSIN_TO_ANGLE_S',1,zhook_handle)
712 REAL(KIND=JPRD),
DIMENSION(:),
INTENT(IN) :: COSINUS,SINUS
713 REAL(KIND=JPRD),
DIMENSION(SIZE(COSINUS)) :: ANGLE
715 REAL(KIND=JPRD) :: ZHOOK_HANDLE
717 IF (lhook)
CALL dr_hook(
'EGGANGLES:COSIN_TO_ANGLE_V',0,zhook_handle)
718 angle(:) =
p_acos(cosinus(:))*sign(1.0_jprd,sinus(:))
719 IF (lhook)
CALL dr_hook(
'EGGANGLES:COSIN_TO_ANGLE_V',1,zhook_handle)
725 REAL(KIND=JPRD) FUNCTION p_acos_s(COSINUS)
RESULT (ANGLE)
727 REAL(KIND=JPRD),
INTENT(IN) :: COSINUS
729 REAL(KIND=JPRD) :: ZHOOK_HANDLE
731 IF (lhook)
CALL dr_hook(
'EGGANGLES:P_ACOS_S',0,zhook_handle)
733 IF (lhook)
CALL dr_hook(
'EGGANGLES:P_ACOS_S',1,zhook_handle)
736 FUNCTION p_acos_v(COSINUS)
RESULT (ANGLE)
738 REAL(KIND=JPRD),
DIMENSION(:),
INTENT(IN) :: COSINUS
739 REAL(KIND=JPRD),
DIMENSION(SIZE(COSINUS)) :: ANGLE
741 REAL(KIND=JPRD) :: ZHOOK_HANDLE
743 IF (lhook)
CALL dr_hook(
'EGGANGLES:P_ACOS_V',0,zhook_handle)
744 angle(:) = acos(
minimax(cosinus(:)))
745 IF (lhook)
CALL dr_hook(
'EGGANGLES:P_ACOS_V',1,zhook_handle)
751 REAL(KIND=JPRD) FUNCTION p_asin_s(SINUS)
RESULT (ANGLE)
753 REAL(KIND=JPRD),
INTENT(IN) :: SINUS
755 REAL(KIND=JPRD) :: ZHOOK_HANDLE
757 IF (lhook)
CALL dr_hook(
'EGGANGLES:P_ASIN_S',0,zhook_handle)
759 IF (lhook)
CALL dr_hook(
'EGGANGLES:P_ASIN_S',1,zhook_handle)
762 FUNCTION p_asin_v(SINUS)
RESULT (ANGLE)
764 REAL(KIND=JPRD),
DIMENSION(:),
INTENT(IN) :: SINUS
765 REAL(KIND=JPRD),
DIMENSION(SIZE(SINUS)) :: ANGLE
767 REAL(KIND=JPRD) :: ZHOOK_HANDLE
769 IF (lhook)
CALL dr_hook(
'EGGANGLES:P_ASIN_V',0,zhook_handle)
770 angle(:) = asin(
minimax(sinus(:)))
771 IF (lhook)
CALL dr_hook(
'EGGANGLES:P_ASIN_V',1,zhook_handle)
777 REAL(KIND=JPRD) FUNCTION minimax_s(VAL,LIM)
RESULT (VALO)
779 REAL(KIND=JPRD),
INTENT(IN) :: VAL
780 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: LIM
782 REAL(KIND=JPRD) :: TLIM
783 REAL(KIND=JPRD) :: ZHOOK_HANDLE
785 IF (lhook)
CALL dr_hook(
'EGGANGLES:MINIMAX_S',0,zhook_handle)
786 IF (
PRESENT(lim))
THEN 791 valo = min(tlim,max(-1.0_jprd*tlim,val))
792 IF (lhook)
CALL dr_hook(
'EGGANGLES:MINIMAX_S',1,zhook_handle)
795 FUNCTION minimax_v(VAL,LIM)
RESULT (VALO)
797 REAL(KIND=JPRD),
DIMENSION(:),
INTENT(IN) :: VAL
798 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: LIM
799 REAL(KIND=JPRD),
DIMENSION(SIZE(VAL)) :: VALO
801 REAL(KIND=JPRD) :: TLIM
802 REAL(KIND=JPRD) :: ZHOOK_HANDLE
804 IF (lhook)
CALL dr_hook(
'EGGANGLES:MINIMAX_V',0,zhook_handle)
805 IF (
PRESENT(lim))
THEN 810 valo(:) = min(tlim,max(-1.0_jprd*tlim,val(:)))
811 IF (lhook)
CALL dr_hook(
'EGGANGLES:MINIMAX_V',1,zhook_handle)
817 REAL(KIND=JPRD) FUNCTION dist_2ref_l(COORD_LON,REF_LON,PI)
RESULT(DIST)
830 REAL(KIND=JPRD),
INTENT(IN) :: COORD_LON, REF_LON
831 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
834 REAL(KIND=JPRD) :: TPI
835 REAL(KIND=JPRD) :: ZHOOK_HANDLE
837 IF (lhook)
CALL dr_hook(
'EGGANGLES:DIST2REF_L',0,zhook_handle)
839 IF (
PRESENT(pi))
THEN 842 tpi = asin(1.0_jprd)*2.0_jprd
844 z = (coord_lon-ref_lon)
845 z = z-sign(tpi,z)*(1.0_jprd+sign(1.0_jprd,abs(z)-tpi))
846 dist = -z*sign(1.0_jprd,z-tpi)
848 IF (lhook)
CALL dr_hook(
'EGGANGLES:DIST2REF_L',1,zhook_handle)
851 REAL(KIND=JPRD) FUNCTION dist_2ref_s(PT_COORD,REF_COORD,PI)
RESULT(DIST)
864 type(
lola),
INTENT(IN) :: pt_coord, ref_coord
865 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
867 REAL(KIND=JPRD) :: TPI
868 REAL(KIND=JPRD) :: ZHOOK_HANDLE
870 IF (lhook)
CALL dr_hook(
'EGGANGLES:DIST2REF_S',0,zhook_handle)
872 IF (
PRESENT(pi))
THEN 875 tpi = asin(1.0_jprd)*2.0_jprd
877 dist =
dist_2ref(pt_coord%LON,ref_coord%LON,tpi)
879 IF (lhook)
CALL dr_hook(
'EGGANGLES:DIST2REF_S',1,zhook_handle)
882 FUNCTION dist_2ref_v(PT_COORD,REF_COORD,PI)
RESULT(DIST)
895 type(
lola),
DIMENSION(:),
INTENT(IN) :: pt_coord
896 type(
lola),
INTENT(IN) :: ref_coord
897 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
898 REAL(KIND=JPRD),
DIMENSION(SIZE(PT_COORD)) :: DIST
900 REAL(KIND=JPRD),
DIMENSION(SIZE(PT_COORD)) :: Z
901 REAL(KIND=JPRD) :: TPI
902 REAL(KIND=JPRD) :: ZHOOK_HANDLE
904 IF (lhook)
CALL dr_hook(
'EGGANGLES:DIST2REF_V',0,zhook_handle)
906 IF (
PRESENT(pi))
THEN 909 tpi = asin(1.0_jprd)*2.0_jprd
911 z(:) = pt_coord(:)%LON-ref_coord%LON
912 z(:) = z(:)-sign(tpi,z(:))*(1.0_jprd+sign(1.0_jprd,abs(z(:))-tpi))
913 dist(:) = -z(:)*sign(1.0_jprd,z(:)-tpi)
915 IF (lhook)
CALL dr_hook(
'EGGANGLES:DIST2REF_V',1,zhook_handle)
918 REAL(KIND=JPRD) FUNCTION size_w2e_l(WEST_LON,EAST_LON,PI)
RESULT(TAILLE)
929 REAL(KIND=JPRD),
INTENT(IN) :: WEST_LON, EAST_LON
930 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
933 REAL(KIND=JPRD) :: TPI
934 REAL(KIND=JPRD) :: ZHOOK_HANDLE
936 IF (lhook)
CALL dr_hook(
'EGGANGLES:SIZE_W2E_L',0,zhook_handle)
938 IF (
PRESENT(pi))
THEN 941 tpi = asin(1.0_jprd)*2.0_jprd
944 taille = tpi*(1.0_jprd+sign(1.0_jprd,z))-z
946 IF (lhook)
CALL dr_hook(
'EGGANGLES:SIZE_W2E_L',1,zhook_handle)
949 REAL(KIND=JPRD) FUNCTION size_w2e_s(WEST_COORD,EAST_COORD,PI)
RESULT(TAILLE)
960 type(
lola),
INTENT(IN) :: west_coord, east_coord
961 REAL(KIND=JPRD),
INTENT(IN),
OPTIONAL :: PI
963 REAL(KIND=JPRD) :: TPI
964 REAL(KIND=JPRD) :: ZHOOK_HANDLE
966 IF (lhook)
CALL dr_hook(
'EGGANGLES:SIZE_W2E_S',0,zhook_handle)
968 IF (
PRESENT(pi))
THEN 971 tpi = asin(1.0_jprd)*2.0_jprd
973 taille =
size_w2e(west_coord%LON,east_coord%LON,tpi)
975 IF (lhook)
CALL dr_hook(
'EGGANGLES:SIZE_W2E_S',1,zhook_handle)
real(kind=jprd) function p_asin_s(SINUS)
integer(kind=jpim) function val_coord_s(PT_COORD, NUM_ERR, PI, DOM, UNIT)
type(lola) function lolad_s(COORD_RAD)
type(lola) function, dimension(size(coord_rad)) lolad_v(COORD_RAD)
type(lola) function angle_domain_lolas(ALPHA, PI, DOM, UNIT)
real(kind=jprd) function angle_domain_rs(ALPHA, PI, DOM, UNIT)
real(kind=jprd) function size_w2e_s(WEST_COORD, EAST_COORD, PI)
type(lola) function, dimension(size(yl_alpha)) angle_domain_lolav(YL_ALPHA, PI, DOM, UNIT)
real(kind=jprd) function, dimension(size(cosinus)) p_acos_v(COSINUS)
type(lola) function lolar_s(COORD_DEG)
real(kind=jprd) function minimax_s(VAL, LIM)
real(kind=jprd) function dist_2ref_l(COORD_LON, REF_LON, PI)
real(kind=jprd) function cosin_to_angle_s(COSINUS, SINUS)
real(kind=jprd) function dist_2ref_s(PT_COORD, REF_COORD, PI)
type(lola) function, dimension(size(coord_deg)) lolar_v(COORD_DEG)
integer(kind=jpim) function val_lat_s(LAT, NUM_ERR, PI, UNIT)
real(kind=jprd) function, dimension(size(sinus)) p_asin_v(SINUS)
integer(kind=jpim) function val_coord_v(YD_PT_COORD, K_NUM_ERR, PI, CD_DOM, CD_UNIT)
real(kind=jprd) function p_acos_s(COSINUS)
integer(kind=jpim) function val_lon_v(LON, NUM_ERR, PI, DOM, UNIT)
real(kind=jprd) function, dimension(size(cosinus)) cosin_to_angle_v(COSINUS, SINUS)
integer(kind=jpim) function val_lat_v(P_LAT, NUM_ERR, PI, UNIT)
integer(kind=jpim) function val_lon_s(LON, NUM_ERR, PI, DOM, UNIT)
real(kind=jprd) function, dimension(size(alpha)) angle_domain_rv(ALPHA, PI, DOM, UNIT)
real(kind=jprd) function, dimension(size(pt_coord)) dist_2ref_v(PT_COORD, REF_COORD, PI)
real(kind=jprd) function size_w2e_l(WEST_LON, EAST_LON, PI)
real(kind=jprd) function, dimension(size(val)) minimax_v(VAL, LIM)