Changeset 5287 for LMDZ6/trunk/libf/grid
- Timestamp:
- Oct 28, 2024, 2:53:53 PM (5 weeks ago)
- Location:
- LMDZ6/trunk/libf/grid
- Files:
-
- 4 moved
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/grid/fxy_new_mod_h.f90
r5286 r5287 1 ! 2 ! $Header$ 3 ! 4 !-------------------------------------------------------------- 5 REAL :: ripx 6 REAL :: fx,fxprim,fy,fyprim,ri,rj,bigy 7 ! 8 !....stretching in x... 9 ! 10 ripx( ri )= (ri-1.0) *2.*pi/REAL(iim) 11 fx ( ri )= ripx(ri) + transx + & 12 alphax * SIN( ripx(ri)+transx-pxo ) - pi 13 fxprim(ri) = 2.*pi/REAL(iim) * & 14 ( 1.+ alphax * COS( ripx(ri)+transx-pxo ) ) 1 ! This module replaces grid/fxy_new.h 15 2 16 !....stretching in y... 17 ! 18 bigy(rj) = 2.* (REAL(jjp1)-rj ) *pi/jjm19 fy(rj) = ( bigy(rj) + transy + &20 alphay * SIN( bigy(rj)+transy-pyo ) ) /2. - pi/2.21 fyprim(rj) = ( pi/jjm ) * ( 1.+ &22 alphay * COS( bigy(rj)+transy-pyo ) )3 MODULE fxy_new_mod_h 4 USE comconst_mod, ONLY: pi 5 USE serre_mod, ONLY: pxo, pyo, alphax, alphay, transx, transy 6 USE dimensions_mod, ONLY: iim, jjm, llm, ndm 7 USE lmdz_paramet 8 IMPLICIT NONE; PRIVATE 9 PUBLIC fx, fxprim, fy, fyprim 23 10 24 ! fy(rj)= pyo-pisjjm*(rj-transy)+coefalpha*SIN(depisjm*(rj- 25 ! * transy )) 26 ! fyprim(rj)= pisjjm-pisjjm*coefy2* COS(depisjm*(rj-transy)) 27 !-------------------------------------------------------------- 11 12 CONTAINS 13 REAL FUNCTION ripx(ri) 14 REAL, INTENT(IN) :: ri 15 ripx = (ri - 1.0) * 2. * pi / REAL(iim) 16 END FUNCTION ripx 17 18 REAL FUNCTION fx(ri) 19 REAL, INTENT(IN) :: ri 20 fx = ripx(ri) + transx + alphax * SIN(ripx(ri) + transx - pxo) - pi 21 END FUNCTION fx 22 23 REAL FUNCTION fxprim(ri) 24 REAL, INTENT(IN) :: ri 25 fxprim = 2. * pi / REAL(iim) * (1. + alphax * COS(ripx(ri) + transx - pxo)) 26 END FUNCTION fxprim 27 28 REAL FUNCTION bigy(rj) 29 REAL, INTENT(IN) :: rj 30 bigy = 2. * (REAL(jjp1) - rj) * pi / jjm 31 END FUNCTION bigy 32 33 REAL FUNCTION fy(rj) 34 REAL, INTENT(IN) :: rj 35 fy = (bigy(rj) + transy + alphay * SIN(bigy(rj) + transy - pyo)) / 2. - pi / 2. 36 END FUNCTION fy 37 38 REAL FUNCTION fyprim(rj) 39 REAL, INTENT(IN) :: rj 40 fyprim = (pi / jjm) * (1. + alphay * COS(bigy(rj) + transy - pyo)) 41 END FUNCTION fyprim 42 END MODULE fxy_new_mod_h -
LMDZ6/trunk/libf/grid/fxy_reg_mod_h.f90
r5286 r5287 1 ! 2 ! $Header$ 3 ! 4 !----------------------------------------------------------------------- 5 ! INCLUDE 'fxyprim.h' 6 ! 7 ! ................................................................ 8 ! ................ Fonctions in line ........................... 9 ! ................................................................ 10 ! 11 REAL :: fy, fx, fxprim, fyprim 12 REAL :: ri, rj 13 ! 14 ! 15 fy ( rj ) = pi/REAL(jjm) * ( 0.5 * REAL(jjm) + 1. - rj ) 16 fyprim( rj ) = pi/REAL(jjm) 1 ! This module replaces grid/fxy_reg.h 17 2 18 ! fy(rj)=ASIN(1.+2.*((1.-rj)/REAL(jjm))) 19 ! fyprim(rj)=1./SQRT((rj-1.)*(jjm+1.-rj)) 3 MODULE fxy_reg_mod_h 4 USE comconst_mod, ONLY: pi 5 USE dimensions_mod, ONLY: iim, jjm, llm, ndm 6 IMPLICIT NONE; PRIVATE 7 PUBLIC fx, fxprim, fy, fyprim 20 8 21 fx ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* REAL(iim) - 1. ) 22 ! fx ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* ( REAL(iim) + 1.) ) 23 fxprim( ri ) = 2.*pi/REAL(iim) 24 ! 25 ! 26 ! La valeur de pi est passee par le common/const/ou /const2/ . 27 ! Sinon, il faut la calculer avant d'appeler ces fonctions . 28 ! 29 ! ---------------------------------------------------------------- 30 ! Fonctions a changer eventuellement, selon x(x) et y(y) choisis . 31 ! ----------------------------------------------------------------- 32 ! 33 ! ..... ici, on a l'application particuliere suivante ........ 34 ! 35 ! ************************************** 36 ! ** x = 2. * pi/iim * X ** 37 ! ** y = pi/jjm * Y ** 38 ! ************************************** 39 ! 40 ! .................................................................. 41 ! .................................................................. 42 ! 43 ! 44 ! 45 !----------------------------------------------------------------------- 9 CONTAINS 10 11 REAL FUNCTION fx(ri) 12 REAL, INTENT(IN) :: ri 13 fx = 2. * pi / REAL(iim) * (ri - 0.5 * REAL(iim) - 1.) 14 END FUNCTION fx 15 16 REAL FUNCTION fxprim(ri) 17 REAL, INTENT(IN) :: ri 18 fxprim = 2. * pi / REAL(iim) 19 END FUNCTION fxprim 20 21 REAL FUNCTION fy(rj) 22 REAL, INTENT(IN) :: rj 23 fy = pi / REAL(jjm) * (0.5 * REAL(jjm) + 1. - rj) 24 END FUNCTION fy 25 26 REAL FUNCTION fyprim(rj) 27 REAL, INTENT(IN) :: rj 28 fyprim = pi / REAL(jjm) 29 END FUNCTION fyprim 30 END MODULE fxy_reg_mod_h -
LMDZ6/trunk/libf/grid/fxy_sin_mod_h.f90
r5286 r5287 1 ! 2 ! $Header$ 3 ! 4 !----------------------------------------------------------------------- 5 ! INCLUDE 'fxyprim.h' 6 ! 7 ! ................................................................ 8 ! ................ Fonctions in line ........................... 9 ! ................................................................ 10 ! 11 REAL :: fy, fx, fxprim, fyprim 12 REAL :: ri, rj 13 ! 14 ! 15 fy(rj)=ASIN(1.+2.*((1.-rj)/REAL(jjm))) 16 fyprim(rj)=1./SQRT((rj-1.)*(jjm+1.-rj)) 1 ! This module replaces grid/fxy_sin.h 17 2 18 fx ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* REAL(iim) - 1. ) 19 ! fx ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* ( REAL(iim) + 1.) ) 20 fxprim( ri ) = 2.*pi/REAL(iim) 21 ! 22 ! 23 ! La valeur de pi est passee par le common/const/ou /const2/ . 24 ! Sinon, il faut la calculer avant d'appeler ces fonctions . 25 ! 26 ! ---------------------------------------------------------------- 27 ! Fonctions a changer eventuellement, selon x(x) et y(y) choisis . 28 ! ----------------------------------------------------------------- 29 ! 30 ! ..... ici, on a l'application particuliere suivante ........ 31 ! 32 ! ************************************** 33 ! ** x = 2. * pi/iim * X ** 34 ! ** y = pi/jjm * Y ** 35 ! ************************************** 36 ! 37 ! .................................................................. 38 ! .................................................................. 39 ! 40 ! 41 ! 42 !----------------------------------------------------------------------- 3 MODULE fxy_sin_mod_h 4 USE comconst_mod, ONLY: pi 5 USE dimensions_mod, ONLY: iim, jjm, llm, ndm 6 IMPLICIT NONE; PRIVATE 7 PUBLIC fx, fxprim, fy, fyprim 8 9 CONTAINS 10 11 REAL FUNCTION fx(ri) 12 REAL, INTENT(IN) :: ri 13 fx = 2. * pi / REAL(iim) * (ri - 0.5 * REAL(iim) - 1.) 14 END FUNCTION fx 15 16 REAL FUNCTION fxprim(ri) 17 REAL, INTENT(IN) :: ri 18 fxprim = 2. * pi / REAL(iim) 19 END FUNCTION fxprim 20 21 REAL FUNCTION fy(rj) 22 REAL, INTENT(IN) :: rj 23 fy = ASIN(1. + 2. * ((1. - rj) / REAL(jjm))) 24 END FUNCTION fy 25 26 REAL FUNCTION fyprim(rj) 27 REAL, INTENT(IN) :: rj 28 fyprim = 1. / SQRT((rj - 1.) * (jjm + 1. - rj)) 29 END FUNCTION fyprim 30 END MODULE fxy_sin_mod_h -
LMDZ6/trunk/libf/grid/fxyprim_mod_h.f90
r5286 r5287 1 ! 2 ! $Header$ 3 ! 4 !----------------------------------------------------------------------- 5 ! INCLUDE 'fxyprim.h' 6 ! 7 ! ................................................................ 8 ! ................ Fonctions in line ........................... 9 ! ................................................................ 10 ! 11 REAL :: fy, fx, fxprim, fyprim 12 REAL :: ri, rj 13 ! 14 ! 15 fy ( rj ) = pi/REAL(jjm) * ( 0.5 * REAL(jjm) + 1. - rj ) 16 fyprim( rj ) = pi/REAL(jjm) 1 ! This module replaces grid/fxy_prim.h 17 2 18 ! fy(rj)=ASIN(1.+2.*((1.-rj)/REAL(jjm))) 19 ! fyprim(rj)=1./SQRT((rj-1.)*(jjm+1.-rj)) 3 MODULE fxyprim_mod_h 4 USE comconst_mod, ONLY: pi 5 USE dimensions_mod, ONLY: iim, jjm, llm, ndm 6 IMPLICIT NONE; PRIVATE 7 PUBLIC fx, fxprim, fy, fyprim 20 8 21 fx ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* REAL(iim) - 1. ) 22 ! fx ( ri ) = 2.*pi/REAL(iim) * ( ri - 0.5* ( REAL(iim) + 1.) ) 23 fxprim( ri ) = 2.*pi/REAL(iim) 24 ! 25 ! 26 ! La valeur de pi est passee par le common/const/ou /const2/ . 27 ! Sinon, il faut la calculer avant d'appeler ces fonctions . 28 ! 29 ! ---------------------------------------------------------------- 30 ! Fonctions a changer eventuellement, selon x(x) et y(y) choisis . 31 ! ----------------------------------------------------------------- 32 ! 33 ! ..... ici, on a l'application particuliere suivante ........ 34 ! 35 ! ************************************** 36 ! ** x = 2. * pi/iim * X ** 37 ! ** y = pi/jjm * Y ** 38 ! ************************************** 39 ! 40 ! .................................................................. 41 ! .................................................................. 42 ! 43 ! 44 ! 45 !----------------------------------------------------------------------- 9 CONTAINS 10 11 REAL FUNCTION fx(ri) 12 REAL, INTENT(IN) :: ri 13 fx = 2. * pi / REAL(iim) * (ri - 0.5 * REAL(iim) - 1.) 14 END FUNCTION fx 15 16 REAL FUNCTION fxprim(ri) 17 REAL, INTENT(IN) :: ri 18 fxprim = 2. * pi / REAL(iim) 19 END FUNCTION fxprim 20 21 REAL FUNCTION fy(rj) 22 REAL, INTENT(IN) :: rj 23 fy = pi / REAL(jjm) * (0.5 * REAL(jjm) + 1. - rj) 24 END FUNCTION fy 25 26 REAL FUNCTION fyprim(rj) 27 REAL, INTENT(IN) :: rj 28 fyprim = pi / REAL(jjm) 29 END FUNCTION fyprim 30 END MODULE fxyprim_mod_h
Note: See TracChangeset
for help on using the changeset viewer.