Changeset 3605 for LMDZ6/branches/Ocean_skin/libf/phylmd/geo2atm.F90
- Timestamp:
- Nov 21, 2019, 4:43:45 PM (5 years ago)
- Location:
- LMDZ6/branches/Ocean_skin
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Ocean_skin
-
LMDZ6/branches/Ocean_skin/libf/phylmd/geo2atm.F90
r2429 r3605 5 5 USE dimphy 6 6 USE mod_phys_lmdz_para 7 7 USE mod_grid_phy_lmdz, only: grid_type, unstructured, regular_lonlat 8 8 IMPLICIT NONE 9 9 INCLUDE 'YOMCST.h' 10 CHARACTER (len = 6) :: clmodnam 11 CHARACTER (len = 20) :: modname = 'geo2atm' 12 CHARACTER (len = 80) :: abort_message 10 13 11 14 ! Change wind coordinates from cartesian geocentric to local spherical 12 15 ! NB! Fonctionne probablement uniquement en MPI seul (sans OpenMP) 13 16 ! 17 ! Geocentric : 18 ! axe x is eastward : crosses (0N,90E) point. 19 ! axe y crosses (0N,180E) point. 20 ! axe z is 'up' : crosses north pole. 21 ! 22 ! NB! Aux poles, fonctionne probablement uniquement en MPI seul (sans OpenMP) 23 14 24 INTEGER, INTENT (IN) :: im, jm 15 25 REAL, DIMENSION (im,jm), INTENT(IN) :: px, py, pz … … 17 27 REAL, DIMENSION (im,jm), INTENT(OUT) :: pu, pv, pr 18 28 19 REAL :: rad 29 REAL :: rad,reps 20 30 21 31 22 32 rad = rpi / 180.0E0 23 33 reps = 1.0e-5 34 24 35 pu(:,:) = & 25 36 - px(:,:) * SIN(rad * plon(:,:)) & … … 36 47 + pz(:,:) * SIN(rad * plat(:,:)) 37 48 38 ! Value at North Pole 39 IF (is_north_pole_dyn) THEN 40 pu(:, 1) = -px (1,1) 41 pv(:, 1) = -py (1,1) 42 pr(:, 1) = 0.0 43 ENDIF 49 IF (grid_type==regular_lonlat) THEN 50 ! Value at North Pole 51 IF (is_north_pole_dyn) THEN 52 pu(:, 1) = -px (1,1) 53 pv(:, 1) = -py (1,1) 54 pr(:, 1) = 0.0 55 ENDIF 44 56 45 ! Value at South Pole 46 IF (is_south_pole_dyn) THEN 47 pu(:,jm) = -px (1,jm) 48 pv(:,jm) = -py (1,jm) 49 pr(:,jm) = 0.0 50 ENDIF 57 ! Value at South Pole 58 IF (is_south_pole_dyn) THEN 59 pu(:,jm) = -px (1,jm) 60 pv(:,jm) = -py (1,jm) 61 pr(:,jm) = 0.0 62 ENDIF 63 64 ELSE IF (grid_type==unstructured) THEN 65 ! Pole nord pour Dynamico 66 WHERE ( plat(:,:) >= 90.0-reps ) 67 pu(:,:) = py(:,:) 68 pv(:,:) = -px(:,:) 69 pr(:,:) = 0.0e0 70 END WHERE 71 72 ELSE 73 abort_message='Problem: unknown grid type' 74 CALL abort_physic(modname,abort_message,1) 75 END IF 76 77 78 51 79 52 80 END SUBROUTINE geo2atm
Note: See TracChangeset
for help on using the changeset viewer.